MySQL学习笔记(一):SQL基础

定义:SQL即Structure Query Language(机构化查询语言)的缩写,是使用关系数据库的应用语言。

包括三个类别

(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 显示所有可供查询的的分类, 进一步查询 只需 ?后接相关关键字

上一篇:【hibernate学习杂记】维护关系的一方和不维护关系的一方的区别与联系


下一篇:MySQL集群之五大常见的MySQL高可用方案(转)