sql学习

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。