SQL分类
- DDL:数据定义语言
- create(创建)、drop(删除)、alter(修改)
- DML:数据操纵语言
- insert(插入)、update(更新)、delete(删除)
- DQL:数据查询语言
- select(查询)
- DCL:数据控制语言
- grant(授予权限)、revoke(撤销权限)
数据库操作命令
进入数据库
mysql -uroot -p
查看所有数据库信息
show databses;
创建数据库
create database 数据库名;
切换数据库
use 数据库名;
创建表
create table info (id int(4) not null primary key auto_increment,name varchar(10));
mysql> desc info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
注解:
primary key 主键
auto_increment 自增(数字)
varchar 长度不固定可以超过
decimal (5,2)精准控制:5个有效数字,2小数点后面保留两位 (100.00)
添加表信息
方式(一)
mysql> insert into info (id,name) values (1,'T1'),(2,'T2');
mysql> select * from info;
+----+------+
| id | name |
+----+------+
| 1 | T1 |
| 2 | T2 |
+----+------+
2 rows in set (0.00 sec)
方式(二)
mysql> insert into info values (3,'T3');
mysql> select * from info;
+----+------+
| id | name |
+----+------+
| 1 | T1 |
| 2 | T2 |
| 3 | T3 |
+----+------+-------+
3 rows in set (0.00 sec)
查看所有表
show tables;
查看表结构
desc 表名;
删除数据库和表
- 删除指定的数据表
drop table [数据库名].表名
- 删除指定的数据库
drop database 数据库名
插入一个新字段
语法结构: alter table 表名 add column 字段名 字段类型;
alter table info add column score decimal (5,2);
mysql> desc info;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| score | decimal(5,2) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
删除字段
语法结构: alter table 表名 drop column 字段名;
mysql> alter table info drop column score;
mysql> desc info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
修改、更新数据库中的记录
语法结构: update 表名 set 字段名1=值1 where 条件表达式;
update info set name='zhangsan' where id=2;
mysql> select * from info;
+----+----------+
| id | name |
+----+----------+
| 1 | T1 |
| 2 | zhangsan |
| 3 | T3 |
+----+----------+
3 rows in set (0.00 sec)
数据表中删除指定的数据记录
语法结构: delete from 表名 where 条件表达式
delete from info where id=2;
mysql> select * from info;
+----+------+
| id | name |
+----+------+
| 1 | T1 |
| 3 | T3 |
+----+------+
2 rows in set (0.00 sec)
数据查询
- 不指定条件查询
语法结构: select 字段名1,字段名2, … from 表名;
mysql> select * from info;
+----+------+
| id | name |
+----+------+
| 1 | T1 |
| 3 | T3 |
+----+------+
2 rows in set (0.00 sec)
语法结构: select 字段名1,字段名2, … from 表名 where 条件表达式;
mysql> select * from info where id=1;
+----+------+
| id | name |
+----+------+
| 1 | T1 |
+----+------+
1 row in set (0.00 sec)
清空表
(一)delete from 表名
(二)truncate table 表名
克隆表
create table 新表名 like 被克隆的表名;
insert into 新表名 select * from 被克隆的表名;
数据库用户权限
■ 授权
- grant 权限列表 on 数据库名.表名 to 用户名 @ 来源地址 identified by ‘密码’;
- grant all on user.* to ‘tl’@‘localhost’ identified by ‘123456’;
■ 查看用户权限
- show grants for 用户名@来源地址;
- show grants for ‘root’@‘20.0.0.12’;
■ 撤销用户权限
- revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
- revoke all on user.* from ‘root’@‘localhost’;