sql笔记

1. 注释

  • 单行注释:"-- "注释内容或 "#"注释内容(MySQL特有)
  • 多行注释:/* 注释 */

1 DDL

操作数据库

  1. 查询
SHOW DATABASES;
  1. 创建

    • 创建数据库

      CREATE DATABASE 数据库名称;
      
    • 创建数据库(判断,如果不存在则创建)

      CREATE DATABASE IF NOT EXISTS 数据库名称;
      
  2. 删除

    • 删除数据库

      DROP DATABASE 数据库名称;
      
    • 删除数据库(判断,如果存在则删除)

      DROP DATABASE IF EXISTS 数据库名称;
      
  3. 使用数据库

    • 查看当前使用的数据库

      SELECT DATABASE();
      
    • 使用数据库

      USE 数据库名称;
      

操作表

  1. 查询表

    • SHOW TABLES;	-- 查询当前数据库下所有表名称
      
    • DESC 表;		-- 查询表结构
      SELECT * FROM 表;	-- 查询表中数据
      
  2. 创建表

    • CREATE TABLE 表名(
      	字段名1 数据类型,
          字段名2 数据类型,
          ...
      );
      
    • create table student(
      	id int,
      	name varchar(10),
      	gender char(1),
      	birthday date,
      	score double(5,2),
      	tel varchar(10)
      );
      
  3. 删除表

    • DROP TABLE 表名;
      DROP TABLE IF EXISTS 表名
      
  4. 修改表

    • ALTER TABLE 表名 ADD 列名 数据类型;		-- 添加一列
      ALTER TABLE 表名 RENAME TO 新的表名;	#修改表名
      ALTER TABLE 表名 MODIFY 列名 新数据类型;		#修改数据类型
      ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;		#修改列名和数据类型
      ALTER TABLE 表名 DROP 列名;		#删除列
      

2. DML

添加数据

-- 1. 给指定列添加数据
INSERT INTO 表名(列1,列2,...) VALUE(值1,值2,...);
-- 2. 批量添加数据
INSERT INTO 表名(列1,列2,...) VALUE(值1,值2,...),(值1,值2,...),(值1,值2,...);

修改数据

UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 条件];	-- 不加where则全部修改
例
UPDATE student set id=2 WHERE name='李四';

删除数据

DELETE FROM 表名 [WHERE 条件];

3.DQL

SELECT
	字段列表
FROM
表名
WHERE
	条件
GROUP BY
	分组字段
HAVING
	分组后条件
ORDER BY
	排序字段
LIMIT
	分页限定

基础查询

-- 1. 查询多个字段
SELECT 字段列表 FROM 表名;

-- 2. 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

-- 3. 起别名
AS: AS 也可省略
select name as 名字, math 数学成绩 from student;

条件查询

SELECT 字段列表 FROM 表名 WHERE 条件;

排序查询

-- 1. 排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2],...;

-- 排序方式:
-- ASC:升序(默认)
-- DESC:降序

select * from student order by age asc; 

分组查询

聚合函数

SELECT 函数名(列) FROM 表;

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY [HAVING 分组后条件过滤];

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引(从0开始),查询条目数;
-- 起始索引=(当前页码-1)*每页显示的条目数

约束

-- 创建表时添加约束
CREATE TABLE 表名(
	字段名1 数据类型 NOT NULL,
    字段名2 数据类型 约束名称,
    ...
);
-- 添加约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;


-- 外键约束
CREATE TABLE 表名(
    [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名);
)
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名) REFERENCES 主表(主表列名);
-- 删除
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

多表查询

事务

-- 开启事务
START TRANSACTION; 	-- 或BEGIN;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;

posted @ 2022-11-03 21:25  ldliang  阅读(33)  评论(0)    收藏  举报