SQL语句简单汇总

#1. 创建数据库
CREATE DATABASE 数据库名;
#2.查看数据库列表
SHOW DATABASES;
#3. 选择使用数据库
USE 数据库名;
#4. 删除数据库
DROP DATABASE 数据库名;
#5. 创建表格 数据类型为int 长度为4 不足4位用0补充
USE test;
CREATE TABLE [IF NOT EXISTS] tb_dept(
	`sid` INT(4) ZEROFILL
);
#6. 表格的复合主键
USE test;
CREATE TABLE [IF NOT EXISTS] tb_dept(
	`sid` INT(4) ZEROFILL,
	`name`VARCHAR(11),
	PRIMARY KEY(`sid`,`name`)
);
#7. 插入数据
INSERT INTO tb_dept VALUES(12);
#8. 在编辑数据库的时候,为了不出现乱码使用指令
SET NAMES gbk;
#9. 创建表格之前先判断,若是存在则删除,若是不存在则创建
USE myschool
DROP TABLE [IF EXISTS] student;
 CREATE TABLE [IF NOT EXISTS] `student`(
studentNo INT(4) not null comment "学号" primary key, #非空,主键
loginPwd varchar(20) not null comment "密码",
studentName varchar(50) not null comment "学生姓名",
sex char(2) default ‘男’ not null comment "性别",					#非空,默认值“男”
gradeId int(4) unsigned comment "年级编号",						#无符号数
phone varchar(50) comment "联系电话",							
address varchar(255) default "地址不详" comment "地址",			#默认为‘地址不详’
bornDate datatime comment "出生日期",							
email varchar(50) comment "邮件账号",
identityCard varchar(18) unique key comment "身份证号"			#唯一的标识
)DEFAULT charset=utf8;
#10. 查看表
USE myschool;
SHOW TABLES;
#11. 查看表定义
DESCRIBE 表名;DESC 表名;
#12. 查看当前系统的日期
SELECT NOW();
#13. 查看当前的默认的系统存储引擎
SHOW VARIABLES LIKE 'STORAGE_ENGINE%';
#14. 需要修改默认的引擎,可通过MySQL的my.ini文件实现只需要修改default -storage-engine=InnoDB,之后再重启即可

#15. 如何查看MySQL帮助
HELP 查询的内容;
列如:
#16. 查看数据库的帮助文档列表
HELP contents;
#17. 查看数据库支持的类型(这是控制台命令不是SQL语句,所有只能在控制台运行)
HELP Data Types;
HELP INT; # 查看int类型的帮助信息
HELP CREATE TABLE;# 查看create table命令的部分信息

#18. 修改表名
ALTER TABLE<旧表名>RENAME[TO]<新表名>;
列如:
ALTER TABLE demo01  RENAME demo02;
#19. 添加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
列如:
ALTER TABLE demo02 ADD `password` VARCHAR(32) NOT NULL;
#20. 修改字段 把字段为name改为username
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
列如:
ALTER TABLE demo02 CHANGE `name` `username` CHAR(10) NOT NULL;
#21. 删除字段
ALTER TABLE 表名 DROP 字段名;
列如:
ALTER TABLE demo02 DROP `password`;
#22. 添加主外键
 #添加主键约束
 ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
 列如:
 ALTER TABLE `grade` ADD CONSTRAINT `pk_grade` PRIMARY KEY `grade`(`gradeId`);
 # 添加外键约束
 ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关联表名(关联字段);
 列如:
 ALTER TABLE `student` ADD CONSTRAINT fk_student_grade FOREIGN KEY (`gradeId`) REFERENCES `grade`(`gradeId`);
#23. 插入数据
	#单行
	INSERT INTO 表名 [(字段名列表)] VALUES(值列表);
	列如:
	INSERT INTO tb_pet (petName,petBreed,petSex,birthday,description)VALUES('豆豆','1','1','2010-02-24','可爱');
	#多行
	INSERT INTO 表名 [(字段名列表)] VALUE(值列表1),(值列表1),(值列表1),(值列表1),(值列表1)...,(值列表n);
	列如:
	INSERT INTO tb_pet (petName,petBreed,petSex,birthday,description)
	VALUES
	('豆豆','1','1','2010-02-24','可爱'),
	('憨憨','2','2','2011-01-02','调皮'),
	('冰冰','3','1','2011-09-09','漂亮'),
	('猪猪','4','1','2011-09-08','白色'),
	('跳跳','1','1','2011-03-02','柴犬');
#24. 将查询结果插入到新表
	#方式一 按顺序、类库、个数创好新表后才能插入
	INSERT INTO 新表(字段1,字段2,...)
	SELECT 字段1,字段2,...
	FROM 原表;
	#方式二 不需要先创建好新表(mysql不支持)
	SELECT 字段1,字段2,...
	INTO 新表
	FROM 原表;
	#方式二用这个代替
	CREATE TABLE 新表(SELECT 字段1,字段2,....FROM 原表);
	列如:
	CREATE TABLE `user`(SELECT `name`,`password` FROM `student`);
#25. 更新数据记录
UPDATE 表名 SET 字段1=1,,字段2=2,... [WHERE 条件];
列如:
UPDATE student
SET phone='123',`password`='11'
WHERE studentno='1';
#26. 删除数据记录
DELETE FROM 表名 [WHERE 条件];
列如:
DELETE FROM phone WHERE studentno='1';
#27. 删除表中的所有行,重置自增列,表结构以及字段名、约束、索引不变,比delect速度快
TRUNCATE TABLE 表名;
列如:
TRUNCATE TABLE phone;
#28. 查询语句
SELECT<字段名列表>
FROM<表名或视图>
[WHERE <查询条件>]
[GROUP BY<分组的字段名>]
[HAVING <条件>]
[ORDER BY<排序的字段名>[ASCDESC]]
[LIMIT [位置偏移量,显示的行数]];
列如:
SELECT * FROM student
WHERE gradeId='1'
ORDER BY studentno
LIMIT 4,4;
#29. 时间函数
SELECT CURDATE();#当前日期
SELECT CURTIME();#当前时间
SELECT NOW();# 时间和日期
SELECT WEEK(NOW());#一年中的第几周
SELECT YEAR(NOW());#当前年份
SELECT HOUR(NOW());#返回小时
SELECT MINUTE(NOW());#返回分钟值
SELECT DATEDIFF(NOW(),"2009-09-09");#返回相隔的天数
SELECT ADDDATE(NOW(),5);#计算日期参数date加上5天之后

#30. IN子查询 使用in关键字可以使父查询匹配子查询返回的多个单字段值(子查询返回的值不唯一)
SELECT `studentName` FROM `student`
WHERE `studentNo` IN(
		SELECT `studentNo` FROM `result`
		WHERE `subjectNo` = (
			SELECT `subjectNo` FROM `subject`
			WHERE `subjectName`='Logic Java'
		)AND `studentResult`=60	
);

#31.创建临时表 临时表当前连接可见,连接关闭会自动删除
CREATE TEMPORARY TABLE 表名(查询语句);

发布了152 篇原创文章 · 获赞 141 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_44739706/article/details/105162881