学会Mysql第一天
- 2020 年 4 月 11 日
- 筆記
下面是博主学习mysql时整理的笔记,都是从基础开始,非常适合小白。欢迎阅读。
一、数据库管理
数据库是数据存储的最外层,也是数据存储的最大单元
初始化数据库
在cmd中进入mysql目录,输入binmysqld--initialize
创建数据库
create database 数据库名[库选项]
1.[库选项] 数据库的相关属性 字符集: charset 字符集 校对集: collate 校对集
显示数据库
显示全部数据库
show databases;
显示部分数据库
show databases like 匹配模式;
1.“_” 匹配当前位置单个字符 2.“%” 匹配当前位置多个字符
show databases like my%; --查看以my开头的所有数据库
显示创建数据库
show create database 数据库名;
选择数据库
use 数据库名;
修改数据库
5.5之后不能修改数据库名字,所以现在只是修改数据库的字符集或校对集
alter database 数据库名 charset [=] 字符集名称;
删除数据库
drop database 数据库名;
删除数据库后对应的文件夹和opt文件也被删除。
mysql服务端架构
1.数据库管理系统 DBMS (管理服务端的所有数据库) 2.数据库 DB (存储数据的仓库) 3.二维表 Table (数据的集合) 4.字段 field (具体的某种类型的数据)
数据库中的注释 “–”
每一个数据库都有对应的文件夹,每一个文件夹里都有初始的opt文件来保存对应的库选项 每当创建一个数据表,就会在对应的数据库下创建一些文件
MySQL中的三种语句结束符
; 与/g 显示效果相同 /G 显示效果不同(字符在左边,数据在右边)
二、数据表管理
创建表的操作
表需要放置在数据库下 两种方式:
1. 数据库名.表名 mydatabase.student 2.创建表之前先进入到某个数据库里面 use 数据库名;
创建表
create table 表名( 字段名1 字段类型 [字段属性], 字段名2 字段类型 [字段属性] )[表选项]; --使用utf-8字符集来创建表 create table student( name char(10), sex char(2), age int(10) ) charset uft-8;
表选项与数据库选项类似 共有三个:
Engine 存储引擎 charset 字符集 只对自己的表有效(级别比数据库的高) collate 校对集 只对自己的表有效(级别比数据库的高)
复制表(只是复制表结构)
create table 新表名 like 数据库名.表名; create table teacher like mydatabase.student;
显示表的操作
显示所有表
show tables;
显示部分表
show tables like 匹配模式;
显示表结构
本质含义:显示表中的字段的信息
1. describe 表名; 2. desc 表名; 3. show columns from 表名;
显示表创建语句
show create table 表名;
设置表属性
设置表属性就是设置表的选项(engine,charset,collate)
基本语法:
alter table 表名 表选项 [=] 值; alter table student charset utf-8;
修改表结构
修改表名
rename table 旧表名 to 新表名; rename table student to my_student;
alter table 旧表名 rename 新表名
新增字段
alter table 表名 add[column] 新字段名 列类型 [列属性] [位置 first/after 字段名]; alter table student add column address char(20) first;
默认是加到表的最后面,可以通过位置更改
修改字段名
alter table 表名 change 旧字段名 新字段名 字段类型 [列属性][新位置]; alter table student change address addres char(20);
修改字段名之后,要重新指定新字段的类型,否则就会报错.
修改字段类型
alter table 表名 modify 字段名 新类型[列属性][位置]; alter table student modify name varchar(20);
删除字段
alter table 表名 drop 字段名; alter table student drop addres;
删除表结构
drop table 表名[,表名2....]; --可以同时删除多个表 drop table student;
三、用户的管理
创建用户
基本语法:
create user 'username'@'host' identified by 'password'; username--要创建的用户名 host--指定该用户在那个主机可以登录,如果是本地用户,则可以用localhost password--表示该用户的登陆密码
例:
create user 'test1'@'localhost' identified by '123456';
用户删除
基本语法:
drop user 'username'@'host';
例:
drop user 'test1'@'localhost';
设置与更改用户密码
基本语法:
set password for 'username'@'host' = password('newpassword');
例如:
set password for 'test1'@'localhost' = password('654321');
表示把本地主机数据库用户test1的密码修改为654321.
授予与回收用户权限
1、授予用户权限
基本语法
grant privileges on dbname.tablename to 'username'@'host';
表示授权用户test1本地主机对所有数据库和数据表拥有全部权限:
grant all on *.* to 'test1'@'localhost';
2、回收用户权限
基本语法:
revoke privileges on dabname.tablename to 'username'@'host';
例如:
revoke all on *.* to 'test1'@'localhost';