1: 常用的sql分类:
DDL:数据定义语言
DCL:数据控制语言
DML: 数据的查询语句
DQL:数据的查询语句
2: 查数据库支持的字符:
show charset;
3:查看支持的排序规则:
show collation;
4: 创建数据库和表:
CREATE DATABASE school;
ALTER DATABASE school CHARSET utf8;
use school;
CREATE TABLE stu(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname VARCHAR(255) NOT NULL COMMENT '姓名',
sage TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
sgender ENUM('m', 'f', 'n') NOT NULL DEFAULT 'n' COMMENT '性别',
sfz CHAR(18) NOT NULL UNIQUE COMMENT '身份证',
intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
) ENGINE=INNODB CHARSET=UTF8 COMMENT '学生表'
COMMENT 表示注解, UNSIGNED属性就是将数字类型无符号化, 即把负数转为正数,
UNIQUE 唯一索引 创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE
ENGINE 索引引擎
5: 在sname 后加微信列:
ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT "微信号" AFTER sname
6:mysql常用的操作命令:
use school 使用哪个数据库
show tables 有哪些表
show create table stu 查看表的创建语句
CREATE TABLE ceshi_school like stu; 创建一个和stu一样的表
DESC ceshi_school; 产看表结构
7: sql增删改:
插入:
insert into stu(sname, wechat, sage, sgender,sfz) VALUES('小东', '123456', '18', 'm', '3620499526566555')
更新:
UPDATE stu set sname="秦牧" where id=1;
删除:
delete from stu where id=1 # 对数据行的逻辑性删除
truncate table stu; # 磁盘物理性删除, 对表的数据页进行清空。 速度快
8: 伪删除:
alter TABLE stu add statu TINYINT not null DEFAULT 1
update stu set statu=0 WHERE id=0
select * FROM stu WHERE statu=1