1.创建数据库
创建数据库语句
create database test;
创建数据库指定数据库字符集
create database test charset utf8mb4;
创建数据库指定数据库字符集和校验规则
create database test charset utf8mb4 collate utf8mb4_bin;
建库规范:
1.数据库名称不能大写
2.数据库名称不能以数字开头
3.创建数据库时最好加上字符集
4.数据库名称最好能与业务相关,做到见名知意
2.删除数据库
drop database 数据库名称;
drop database test;
3.修改数据库
使用alter命令
alter database test charset utf8mb4 collate utf8mb4_bin;
4.查询数据库创建情况
3306 [(none)]>show create database test;
+----------+--------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */ |
+----------+--------------------------------------------------------------------------------------+
5.创建表 如下:
create table student(
id_ INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
name_ VARCHAR(100) NOT NULL COMMENT '姓名',
age_ TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
gender_ ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别,m:男,f:女,n:未知',
code_ VARCHAR(18) NOT NULL UNIQUE COMMENT '身份证号',
intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
) ENGINE=INNODB CHARSET=utf8 COMMENT '学生信息表';
建表规范:
1.表名小写
2.表名不能用数字开头
3.需要指定字符集和存储引擎
4.表名要见名知意,与业务相关
5.字段数据类型根据业务需要选择
6.列和表都要加上注释
7.尽量将每个列设置为非空
6.删除表
drop table 表名;
7.查询一个数据库的所有表
show tables;
8.查询表的列信息
desc 表名;
9.查询建表语句
show create table student;
10.给表追加字段,如下
alter table student add phone_ varchar(11) not null unique comment '手机号';
如果想在指定列的后面追加列,可以使用after,如下
alter table student add nation_ varchar(15) not null comment '民族' after name_;
将nation_字段追加到name_字段后面 。
如果想要加到首个列可以使用first,如下
alter table student add nation_ varchar(15) not null comment '民族' first;
11.删除列
alter table student drop 列名;
12.修改列
a.只修改列属性,如下
alter table student modify nation_ varchar(10) not null ;
b.修改列名和属性
alter table student change nation_ nt_ varchar(12) not null;
13.创建一张跟指定表一样的表
create table student01 like student;
注意事项:如果对正在使用的数据库,谨慎使用对表进行修改,如果非要修改,请使用能够在线修改的专用工具(pt-osc)进行修改,防止存在会话,导致锁表情况的发生。
14.添加数据
a.添加一条数据,如下
insert into student (id_,name_,age_,gender_,code_,intime_,phone_) values(2,'张三',21,'m','000000000000000001',now(),'11111111111')
b.批量添加数据,如下
insert into student(name_,code_,phone_)
values
('李四','000000000000000002','11111111112') ,
('王五','000000000000000003','11111111113')
15.查询数据,如下
select * from student
16.修改数据
update student set age_ = 13 where name_='李四'
17.删除数据
delete from student where id_=3
注意:delete:属于DML操作,删除只是删除数据行,相当于只是打了个标记,并不会释放磁盘空间 ,逐行删除
如果要删除全表数据,使用truncate
truncate table student
注意:truncate:属于DDL操作,是物理删除 ,清空数据页
真实应用环境中尽量不要使用delete,而是扩展一个标志字段,使用update进行逻辑删除。
18.查询所有系统参数
show variables
19.查询指定系统参数的值,如下
--查询端口号
select @@port
--查询socket文件
select @@socket
20.select调用函数
concat函数和group_concat函数
--查询所有用户
select concat(user,'@',host) from mysql.user
--用户显示一行,用逗号分隔
select group_concat(user,'@',host) from mysql.user
想了解更多内置函数使用,可以查看官方文档
MySQL :: MySQL 5.7 Reference Manual :: 12 Functions and Operators