数据库命令
一、MySQL基本操作
- 连接MySQL数据库服务器
mysql -h[主机] -P[端口] -u[用户] -p[密码]
- 显示所有数据库
show databases;
- 使用指定数据库
use 数据库名;
- 显示数据库中的所有表
show tables;
- 描述表中的列的字段信息
desc 表名称;
- 退出数据库服务器
quit;
二、MySQL常用SQL命令
SQL: (Structured Query Language),结构化查询语言,对关系型数据库服务器中的数据进行增删改查的操作。
1.命令操作模式
(1)交互模式:客户端输入一行,服务器执行一行,适用于临时查看数据
mysql> [SQL命令]
(2)脚本模式:命令书写在文本文件中,服务器一次性执行,适用于批量的增删改查。
mysql -u[用户] < D:\query.sql
2.SQL语法规范
- 每条SQL语句必须以英文的分号结尾,一条语句可跨越多行,直到分号语句结束。
- 多条语句中,其中一条语句有误,则此语句后续语句不再执行。
- SQL命令不区分大小写,习惯上数据库关键字大写,非关键字小写。
- SQL语句具有单行注释
#....
和多行注释/*....*/
3.常用SQL语句
-
设置字体编码:
set names UTF8;
-
丢弃数据库:
drop database if exists 数据库名;
-
创建数据库[并声明字体编码]:
create database 数据库名 [charset=utf8];
-
使用数据库:
use 库名
-
创建数据表:
create table 表名(id INT,name varchar(8),age INT);
-
增加表数据:
insert into 表名 values('value1','value2','value3');
-
查询表数据:
select * from 表名;
-
修改表数据:
update 表名称 set 名称='值' where 条件
-
删除表数据:
delete from 表名称 where 条件
DDL:(Data Define Language)定义数据语言:create、drop、alter
DML:(Data Munipulate Language)操作数据语言:insert 、delete、update
DQL:(Data Query Language)查询数据语言:select
DCL:(Data Control Language)控制用户权限语言:grant、revoke
4.列约束
MySQL可以对插入的数据进行特定的验证,只有满足条件才被允许插入到数据表中,否则就是非法的插入
- 主键约束:
primary key
1.主键约束列上的值不可重复
2.查询记录按照主键由小到大排序
3.主键通常添加到编号列中
4.一个表中只能有一个主键
- 唯一约束:
unique
1.唯一约束列上的值不可重复
2.允许插入NULL,并且插入多个NULL
- 非空约束:
not NULL
非空约束的列不能插入NULL
- 默认值约束:
default
使用default关键字声明默认
- 检查约束:
check
对插入的数据进行检验
- 外键约束:
foreign key
alter table B add constraint A_B_Ids foreign key(Aid) references A(Ids) `
声明外键约束的列的取值须在另一个表的主键列上值相同,列类型一致
#创建学生表
create table stu(
sid INT primary key,#设置主键约束
sname varchar(20) unique,#设置唯一约束
sage INT check(sage >=18 AND sage <= 60),#设置检查约束
ssex char(1) default 'M',#设置默认值约束
snumber char(14) not NULL,#设置非空约束
stid INT
);
#创建老师表
create table tea(
tid INT foreing key(tid) references stu(stid),#设外键约束
tname varchar(10),
tage INT
);
#插入信息,两种采用默认方式
insert into stu values(1,'小敏',19,default,'201917001');
insert into stu(sid,sname,snumber) values(
1,
'小花',
18,
'201917002'
);
5.自增列
auto_increment
:自动增长,加入一个列声明的自增列,无需手动赋值,直接设置NULL
1.自增列允许手动赋值
2.只适用于整数型的主键列上
6.查询字段信息
- 查询指定字段:
select 字段1 字段2 字段3 from 表名;
- 查询所有字段:
select * from 表名;
- 查询并起别名:
select 字段 as 表名 form 表名;
- 显示不同记录且合并相同记录:
select distinct 字段 from 表名;
- 查询时执行数学运算:
select 字段 from 运算符 数学表达式;
- 查询结果集进行排序: asc[升序] desc[降序]
- 查询表,按照字段排序:
select 字段 from 表名 order by 字段 排序关键字;
- 查询表,按照字段1排序,若字段1相同则按字段2排序
select 字段 from 表名 order by 字段1 排序关键字,字2;
- 查询表,按照字段排序:
1.order by 按照: 数值、日期、时间、字符串 排序
2.order by 默认按照ASC排序,可省略排序关键字
- 条件查询字段:
select 字 段 from 表名 where 条件
1.IS NULL
2.IS NOT NULL
3.AND/OR
4.BETWEEN…AND…/NOT BETWEEN…AND…
5.IN( )/NOT IN( )
6.> < = !=
-
模糊条件查询:
select 字段 from 表名 where 条件 like '符号+字符'
% : 匹配任意多个字符
— : 匹配任意一个字符
-
分页查询:
select 字段 from 表名 limit start,count
start:从哪一条开始
count: 条数的跨度
start = (页码 - 1) * count
所需的两个条件:1.当前页码 2.每页的数据量