学习链接:https://www.bilibili.com/video/BV1Kr4y1i7ru
1 MySQL
客户端可以创建多个数据库,一个数据库内能创建多个二维表。
MySQL启动与关闭:
net start mysql
net stop mysql
MySQL客户端连接:
mysql [-h localhost] [-P 3306] -u root -p
2 MySQL通用语法
(1)SQL能单行或多行书写,分号“;”结尾。
(2)空格/缩进增强可读性
(3)SQL不区分大小写,关键词建议使用大写。
1、单行注释:-- 注释
2、多行注释:/* */
3 SQL分类
(1)DDL:数据定义语句,定义数据库的对象(数据库,表,字段)。
(2)DML:数据操作语句,对数据进行增删改。
(3)DQL:数据查询语句,查询表中信息。
(4)DCL:数据控制语句,用来创建数据库用户,控制数据库的访问权限。
3.1 DDL语句
3.1.1 数据库操作
cmd连接客户端后输入以下命令:
1、查询所有数据库:
show databases;
2、查询当前数据库:
select database();
3、创建数据库:
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
字符集:utf8(3个字节),utf8mb4(4个字节,建议使用)
4、删除数据库:
drop database [if exists] 数据库名;
5、使用数据库:
use 数据库名;
3.1.2 表操作
6、查询当前数据库所有表:
show tables;
7、查询表结构:
desc 表名;
8、查询指定表的建表语句:
show create table 表名;
(反引号可加可不加)
9、创建表:表名一定要加反引号“`”
CREATE TABLE `表名`(
字段1 字段1类型 [COMMENT 字段1注释],
字段2 字段2类型 [COMMENT 字段2注释],
字段3 字段3类型 [COMMENT 字段3注释],
...
字段n 字段n类型 [COMMENT 字段n注释] # 这里没逗号
) [COMMENT 表注释];
10、修改表:
(1)添加字段:add
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
(2)修改数据类型:modify
alter table 表名 modify 字段名 新数据类型(长度);
(3)修改字段名和字段类型:change
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
(4)删除字段:drop
alter table 表名 drop 要删除的字段名;
(5)修改表名:rename to
alter table 旧表名 rename to 新表名;
11、删除表:
(1)删除表:drop
drop table [if exists] 表名;
(2)删除指定表,并重新创建该表(相当于清空表):truncate
truncate table 表名;
3.2 数据类型
3.2.1 数据类型
例子:
建立一个年龄:
age TINYINT UNSIGNED # 0-225
score double(4,1) # (整体长度,小数位数)
3.2.2 字符串类型
BLOB为二进制数据,用的少,一般用专用的服务器。
TEXT为文本数据。
char(10),未写入的用空格填充,性能高
varchar(10),计算长短,性能较差
例子:
用户名 username varchar(50)
性别 gender char(1)
3.2.3日期类型
例子:
birthday date
案例:根据需求创建表
编号
员工工号
员工姓名
性别
年龄
身份证号
入职时间
create table `emp`(
id int unsigned comment '编号',
worknum varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
entryDate date comment '入职时间'
) comment '员工表';
3.3 MySQL Workbench图形化界面
打开MySQL Workbench,登录账户后,点击左侧的schema。
3.3.1 新建数据库:
右键空白区域,Create schema,取名为test_003。
相当于命令:
CREATE SCHEMA `test_003` ;
schema:数据库
3.3.2 新建表:
选择一个表的Table,右键新建,取名为user。
添加信息。
相当于命令:
CREATE TABLE `test_003`.`user` (
`id` INT NOT NULL COMMENT '编号',
`name` VARCHAR(50) NULL COMMENT '姓名',
PRIMARY KEY (`id`)
) COMMENT = '用户表';
3.3.3 命令输入
在Query中输入命令并点击Execute(闪电)执行。
show databases;
use test_002;
show tables;
desc employee;
3.4 DML-数据操作语句,增删改
添加数据:INSERT
修改数据:UPDATE
删除数据:DELETE
3.4.1 添加数据:insert
(1)给指定字段添加数据:
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
(2)给全部字段添加数据:
insert into 表名 values (值1,值2,...);
(3)批量添加数据:
insert into 表名(字段名1,字段名2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);
insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...);
注意:插入数据的字段和值一一对应。
字符串和日期型数据应该包含在引号内。
插入的数据大小,应该在字段的规定范围内。
3.4.2 修改数据:update
update 表名 set 字段名1=值1,字段名2=值2,...[where (条件)];
例子:
update employee set name='李清照',gender='女' where (name = '王冰');
update `test_001`.`employee` set `name`='李清照' where (name = '王冰');
update employee set entryDate='2008-01-01'; -- 不写where更新整张表的信息,一般在安全模式下不可使用
3.4.3 删除数据:delete
delete from 表名 [where 条件];
注意:如果delete不添加条件,则会删除整张表的所有数据。
不能删除某个字段的值,需要使用修改数据update将该字段的值改为null。
3.4.4 查看表内数据:select
查看表内信息,图形化界面或者命令:
右键表,Select Rows - Limit 1000。
或输入命令:select * from test_002.employee;
3.5 DQL-数据查询语言,用来查询数据库中表的记录
查询关键词:select
3.5.1 DQL语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
3.5.2 基本查询
1、查询多个字段:
select 字段1,字段2,字段3,... from 表名;
select * from 表名;
(查询返回所有的字段,项目中最好不要用*)
2、设置别名:
select 字段1 [as 别名1], 字段2 [as 别名2], ... from 表名;
3、去除重复记录(不改数据库,显示不重复):
select DISTINCT 字段列表 from 表名;
(2)条件查询(where)
(3)聚合查询(count、max、min、avg、sum)
(4)分组查询(group by)
(5)排序查询(order by)
(6)分页查询(limit)
例子:
1、查询名字,姓名,年龄,命令:
select id,name,age from employee;
2、name起别名:
select name as '姓名' from employee;
(as可省略)
3、不显示重复的信息,命令:
select DISTINCT name from employee;