数据库SQL基础(增删改查)

    科技2022-08-13  88

    SQL学习

    I、SQL语句分类II、SQL语法规则III、DDL语句基础语法i、数据库操作语句ii、表操作语句 IV、DML语句基础语法i、插入记录ii、更新表记录iii、删除表记录 V、DQL语句基础语法i、简单查询

    I、SQL语句分类

    1、DDL(Data Definition Language):数据定义语句 2、DML(Data Manipulation Language):数据操作语句 3、DQL(Data Query Language):数据查询语句 4、DCL(Data Control Language):数据控制语句(本章未总结)

    II、SQL语法规则

    1、 SQL语句允许单行或者多行书写,以分号结尾。 2、 SQL语句不区分大小写,因为SQL底层是大写实现,所以建议全部使用大写,要么关键字使用大写。 2、使用--进行单行注释(双减号后面需要添加空行再接注释语句),使用/* */进行多行注释

    III、DDL语句基础语法

    i、数据库操作语句

    1、创建数据库

    -- 直接创建数据库 CREATE DATABASE MY_DATABASE; -- 判断数据库是否存在再创建数据库 CREATE DATABASE IF NOT EXISTS MY_DATABASE; -- 创建数据库并指定字符集 CREATE DATABASE MY_DATABASE CHARACTER SET gbk;

    2、查看数据库

    -- 查看当前存在的数据库列表 SHOW DATABASES; -- 查看某一个数据库信息 SHOW CREATE DATABASE MY_DATABASE;

    3、修改数据库

    -- 修改数据库字符集格式 ALTER DATABASE MY_DATABASE DEFAULT CHARACTER SET gbk;

    4、删除数据库

    DROP DATABASE MY_DATABASE;

    5、使用数据库

    -- 查看正在使用的数据库 SELECT DATABASE(); -- 使用/切换数据库 USE MY_DATABASE;

    ii、表操作语句

    MySQL常用数据类型,建议参考菜鸟教程

    1、创建表 MySQL中的表类似C语言结构体,但是成员的定义方式不同,可以理解为:成员名+数据类型+(数据位数),同时,每个成员间使用","分隔。

    CREATE TABLE STUDENTS( ID INT(8), NAME VARCHAR(10), AGE INT(3), BIRTHDAY DATE, );

    2、查看当前数据库的所有表

    SHOW TABLES;

    3、查看表结构

    DESC STUDENTS;

    4、查看表中数据

    SELECT * FROM STUDENTS;

    5、查看创建表的SQL语句

    SHOW CREATE TABLE STUDENTS;

    6、快速创建一个与旧表结构相同的新表

    CREATE TABLE STUDENTS_1 LIKE STUDENTS;

    7、删除表

    DROP TABLE STUDENTS_1;

    8、判断表是否存在再删除表

    DROP TABLE IF EXISTS STUDENTS_1;

    9、修改表结构

    -- 修改表名 RENAME TABLE STUDENTS_1 TO STUDENTS_2 -- 修改字符集 ALTER TABLE STUDENTS_2 CHARACTER SET gbk; -- 添加表列 ALTER TABLE STUDENTS_2 ADD SEX CHAR(1); -- 修改表列的类型 ALTER TABLE STUDENTS_2 MODIFY AGE VARCHAR(5); -- 修改列名 ALTER TABLE STUDENTS_2 CHANGE NAME CHINESE_NAME VARCHAR(5); -- 删除列 ALTER TABLE STUDENT_2 DROP SEX;

    IV、DML语句基础语法

    i、插入记录

    注意事项:插入的值与字段必须对应,个数和类型必须相同,值的数据需要在字段的长度范围内,除了数值类型之外的其他类型需要用引号引起(通常为单引号),插入空值时,可以不写字段,或者插入NULL。

    1、插入字段

    -- 插入全部字段 INSERT INTO STUDENTS VALUES (201901, 'SQL', 19, '2000-01-01'); -- 插入部分字段 INSERT INTO STUDENTS (ID, NAME, AGE) VALUES (201901, 'SQL', 19);

    2、蠕虫复制,将旧表数据复制到新表中

    -- 根据旧表STUDENT结构创建新表STUDENT_2 CREATE TABLE STUDENTS_1 LIKE STUDENTS; -- 将旧表STUDENT的全部数据复制到新表STUDENT_2中 INSERT INTO STUDENTS_1 SELECT * FROM STUDENTS; -- 将旧表STUDENT的部分数据复制到新表STUDENT_2中 INSERT INTO STUDENTS_1 (ID, NAME, AGE) SELECT ID, NAME, AGE FROM STUDENTS;

    ii、更新表记录

    1、不带条件修改数据,更改列中的全部数据值

    UPDATE STUDENTS SET NAME = 'SQL';

    2、带条件修改数据,根据指定条件修改数据值

    UPDATE STUDENTS SET NAME = 'SQL' WHERE ID = 201901;

    3、带条件修改多列数据

    UPDATE STUDENTS SET NAME = 'SQL', AGE = '20' WHERE ID = 201901;

    iii、删除表记录

    1、不带条件删除数据

    DELETE FROM STUDENTS_1;

    2、 带条件删除记录

    DELETE FROM STUDENTS WHERE ID = 201901;

    3、TRUNCATE直接删除整张表,再返回重新构建的一张结构相同的表(DELETE删除数据时,是一条一条删除)

    TRUNCATE TABLE STUDENTS_1;

    V、DQL语句基础语法

    i、简单查询

    1、查询表的所有数据,*代表全部字段

    SELECT * FROM STUDENTS;

    2、查询指定列数据

    SELECT ID, NAME FROM STUDENTS;

    3、别名查询,给列名起一个别名,查询结果显示时使用别名显示

    SELECT ID AS 学号, NAME AS 姓名 FROM STUDENTS;

    4、清楚重复值,在结果显示时不出现重复数据

    SELECT DISTINCT NAME, AGE FROM STUDENTS;

    5、查询结果并进行运算,可以是列数据和数值、列数据与列数据进行运算,但是运算对象都必须是数值类型,运算操作不会改变原表数据值,只是在结果显示时是运算后的数据值

    SELECT AGE + 5 FROM STUDENTS; SELECT ID + AGE FROM STUDENTS; -- 给运算之后的列起一个别名 SELECT ID + AGE RANK FROM STUDENTS; -- 显示参与运算的列和运算之后的列 SELECT ID 学号, AGE 姓名, ID + AGE RANK FROM STUDENTS; -- 显示全部列,以及参与运算的列 SELECT *, ID + AGE RANK FROM STUDENTS;
    Processed: 0.009, SQL: 8