前期准备工作
打开虚拟机,运行xshell,连接数据库
一、数据库基本操作
show databases; // 查看数据库信息
查看数据库表的信息
use 数据库名 举例:use mysql
show tables
DESCRIBE [数据库名.] 表名
解释:
- Field:字段名称
- Type:数据类型
- Extra:扩展属性
- Null:是否允许为空
- Key:主键
- Default:默认值
- id:1 3 5 7
1.1 常见的数据类型
- int:整型 用于定义证书类型的数据
- float:单精度浮点4字节32位 准确表示道小数点后六位
- double:双精度浮点8字节64位
- char:固定长度的字符类型 用于定义字符类型数据
- varchar:可变长度的字符类型
- text:文本
- image:图片
- decimal(5,2):5个有效长度数字,小数点后面有两位 指定长度数组
注意:char如果存入数据的实际长度比指定长度要小,会补空格至指定长度; 如果存入数据的实际长度比指定长度要大,低版本会被截取,高版本会报错。
主键是唯一的,但主键可以由多个字段构成。
二、SQL语言描述
2.1 SQL语言
结构化查询语言,而且是关系型数据库的标准语言。主要用于维护管理数据库,包括:数据查询、数据更新、访问控制、对象管理等功能。
2.2 SQL分类
- DDL:数据定义语言
- DML:数据操纵语言
- DQL:数据查询语言
- DCL:数据控制语言
2.2.1 创建数据库和表
DDL语言可用于创建数据库对象,如库、表、索引等
使用DDL语言新建库、表
创建数据库 create database 数据库名
创建数据表 create table 表明(字段定义)
2.2.2 删除数据库和表
使用DDL语言删除库、表
删除指定的数据表
drop table [数据库名.]表名 //删除指定的数据库
drop database 数据库名
2.2.3 管理表中的数据
DML语句用于对表中的数据进行管理
包括的操作
- insert:插入新数据
- update:更新原有数据
- delete:删除不需要的数据
2.2.3.1 向数据表中插入新的数据记录
insert into 表明(字段1,字段2,...)values(字段1的值,字段2的值,...)
2.2.3.2 修改、更新数据表中的数据记录
update 表名 set 字段名1=值1[,字段名2=值2] where 条件表达式
2.2.3.3 在数据库中删除指定的数据记录
delete from 表明 where 条件表达式
举例:delete from auth.users where user_name="lisi"
不带where条件的语句表示删除表中所有记录(慎用)
举例delete from auth.users;
2.2.3.4 DQL数据查询语句
只有select,用于从数据表中查找符合条件的数据记录,可查询时可不指定条件。
select 字段名1,字段名2... from表名
例:select * from auth.users;
查询时指定条件
select 字段名1,字段名2...from 表名 where 条件表达式
2.2.3.5 清空表
delete from 表名
truncate table 表名
特点 | |
---|---|
drop table 表名 | 1.属于DDL 2.不可回滚(无法恢复) 3.不可带where 4.表内容和结构删除 5.删除速度快 |
truncate table 表名 | 1.属于DDL 2.不可回滚(可恢复) 3.不可带where 4.表内容删除 5.删除速度快 |
delete from 表名 | 1.属于DML 2.可回滚(可恢复) 3.可带where 4.表结构在,内容要看where执行情况 5.删除速度慢,需要逐行删除 |
使用场景:
- 不再需要一张表的时候用drop
- 想删除部分数据行时,用delete且带上where
- 保留表而删除所有数据的时候用truncate
比较:
速度:drop>truncate>delete
安全性:delete最好
2.2.3.6 临时表
临时建立的表,用于保存一些临时数据,不会长期存在。
2.2.3.7 克隆表
like方法
show create table方法
根据您的需求:
第一种:迁徙表 表的结构 属性 约束 数据
第二种:备份数据 表的复制内容(数据)
2.3 DLC
2.3.1 修改表名和表结构
alter table 旧表名 rename 新表明;
2.3.2 扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default '地址不详'
2.3.3 修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型[unique key];
- unique key:唯一键(特性:唯一但可以为空,空值只允许出现一次)
- key:唯一且非空(主键一般选择能唯一性的字段不允许取空值(NULL),一个值只能有一个主键)
- CHANGE可修改字段名、数据类型、约束等所有项
ALTER TABLE 表名 modifycolumn 字段名 类型
数据库中表 字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据缺失)
2.3.4 删除字段
格式:ALTER TABLE 表名 DROP 字段名;
alter 修改 表 字段
- rename 修改表名
- ADD 表结构扩展字段
- change 修改表结构字段 类型 modify
- drop 删除字段
二、数据库用户管理以及用户授权
功能 | 举例 |
新建用户 | CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码']; |
查询 | SELECT User,authentication_string,Host from user; |
重命名指定 | RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost'; |
删除用户 | DROP USER 'lisi'@'localhost' ; |
修改当前密码 | SET PASSWORD = PASSWORD('abc123'); |
修改其他用户密码 | SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T'); |
撤销权限
revoke all on 'heihei'.* from 'haha'@'192.168.10.%'
查看权限
show grant FOR 'haha'@'192.168.10.%';
刷新
flush privileges;