MySQL学习笔记(一):SQL基础
包括三个类别:
(1):DDL(Data Definition Language) 数据定义语言,主要用于这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用语句包括:create,drop,alter等。
(2):DML(Data Manipulation Language) 数据操纵语言,主要用于添加,删除,更新和查询数据库记录,常用 关键字:insert, delete,update,select等。
(3):DCL(Data Control Language) 数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
DDL语句:
1.创建数据库
CREATE DATABASE dbname
2.查看数据库
USE dbname
3.删除数据库
drop database dbname
4.创建表
CREATE TABLE tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……
column_name_n column_type_n constraints)
5.查看表信息
desc tablename 或者 show create table tablename \G(这个信息更详细,包括使用的引擎,charset等,\G表示信息竖着排列)
6.删除表
drop table tablename
7.修改表类型(modify)
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
8.增加表字段
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
9.删除表字段
ALTER TABLE tablename DROP [COLUMN] col_name
10.字段改名(change)
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
注意:1.first,after 用于改变字段的排列顺序;
2. modify 和 change 都能改变表的定义,但change后需要两次列名,不方便,但change可以修 改名称,modify不能,modify只能改表类型。
11.表改名
ALTER TABLE tablename RENAME [TO] new_tablename
DML语句:
1. 插入记录
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn);
也可以不用指定字段名称, 但是 values 后面的顺序应该和字段的排列顺序一致
2.更新记录
UPDATE tablename SET field1=value1, field2.=value2, ……fieldn=valuen [WHERE CONDITION]
3.删除记录
DELETE FROM tablename [WHERE CONDITION]
4.查询记录
SELECT * FROM tablename [WHERE CONDITION]
补:distinct 不重复
order by 排序 DESC(降序) ASC(升序)
limit(MySQL特有):前几条记录(从0开始),limit 3 前三条, limit 1,3 第一条开始的前三条
聚合:sum, avg,count,min,max 可加 group by (分类聚合)和 having子句(结果再条件过滤)
表连接:内连接,外连接(左连接,右连接)
子查询:in ,not in, =, !=, exists, not exists
联合:union(会去重), union all
DCL语句:
1.授权
grant select,insert on sakila.* to 'z1'@'localhost' identified by '123'
2.收回权限
revoke insert on sakila.* from 'z1'@'localhost'
帮助的使用
? contents 显示所有可供查询的的分类, 进一步查询 只需 ?后接相关关键字