SQL基础语句八

SQL基础语句
DML
数据操作语言
插入:insert
修改:update
删除:delete
一. 插入语句
语法
Insert into 表名(列名,……) values (值1,….);
案例: 插入的类型要与列的类型一致或兼容
INSERT INTO beauty (id,NAME)
VALUES (13,小龙女);
二:
语法:
Insert into 表名
Set 列名=值,列名=值,……
方式一支持插入多行,方式二不支持
INSERT INTO beauty
VALUES(23,’小龙女’);
INSERT INTO beauty(id,name,phone)
SELECT id,boyname,‘1234567’
FROM boys WHERE id<3;
二 修改语句
修改单表中的记录
修改多表的记录
多表语法:SQL 92
Update 表1 别名,表2 别名
Set 列=值,…
语法
UPDATE 表名
SET 列=新值,列=新值,…
WHERE 筛选条件;

  1. 修改beauty表中姓唐的女神的电话为11111111
    UPDATE beauty SET phone=’111’
    WHERE NAME LIKE ‘唐%’;
  2. 修改boys表中id号为2的名称为张飞,魅力值10
    UPDATE boys SET boyname=’张飞’,usercp=10
    WHERE id=2;
  3. 修改多表的记录
    案例1.修改张无忌的女朋友的手机号为1234
    UPDATE boys bo
    INNER JOIN beauty b ON bo.id=b.boyfriend_id
    SET b.phone=’1234’
    WHERE bo.boyname=’张无忌’;
    案例2 修改没有男朋友的女神的男朋友的编号都为2号
    UPDATE boys bo
    RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
    SET b.boyfriend_id=2
    WHERE vo.id IS NULL;
    删除语句
    方式一 delete
    语法:
  4. 单表的删除
  5. Delete from 表名 where 筛选条件
  6. 方式二 truncate
    语法 truncate table 表名
    案例1 删除手机号以9结尾的女神信息
    DELETE FROM beauty WHERE phone LIKE’%9’;
  7. 多表的删除
    案例:删除张无忌的女朋友的信息
    DELETE b
    FROM beauty b
    INNER JOIN boys bo ON b.boyfriend_id=bo,id
    WHERE bo,boyName=’张无忌’;
    案例:删除黄晓明的信息以及他女朋友的信息
    DELETE b,bo
    FROM beauty b
    INNER JOIN boys bo ON b.boyfriend_id=bo,id
    WHERE bo,boyName=’黄晓明’;

案例:将魅力值>100的男神信息删除
TRUNCATE TAVKE boys;
DDL
库和表的管理
库的管理
创建 修改 删除
表的管理
创建 修改 删除

  1. 库的管理
    库的创建
    语法: create database 库名
    案例:创建库 BOOKS
    CREATE DATABASE if NOT EXISTS BOOKS;
  2. 库的修改
    RENAME DATABASE books TO 新库名;
    更改库的字符集
    ALTER DATABASE books CHARACTER SET gbk;
  3. 库的删除
    DROP DATABASE IF EXISTS books;
    二 表的创建
  4. 表的创建
  5. Create tables 表名
    列名 列的类型(长度) 约束,
    案例 创建表BOOK
    CREATE TABLE book(
    Id, INT ,#编号
    bName VARCHAR(20) ,#图书名
    price DOUBLE,#价格
    authorId INT,#作者编号
    publishDate DATETIME #出版日期
    );
  6. 表的修改
  7. 修改列名
    ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
    修改列的类型或约束
    ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
    添加新列
    ALTER TABLE author ADD COLUMN annual DOUBLE;
    删除列
    ALTER TABLE author DROP COLUMN annual;
    修改表名
    ALTER TABLE author RENAME TO book_author;
    表的删除
    DROP TABLE IF EXISTS book_author;
    SHOW TABLES;
    通用写法
    DROP DATABASE IF EXISTS 旧库名;
    CREATE DATAVASE 新库名;
    表的复制
    INSERT INTO author VALUES
    (1,’111’,中国);
  8. 仅仅复制表的结构
    CREATE TABLE copy LIKE author;
  9. 复制表的结构+数据
    CERATE TABLE copy2
    SELECT *FROM author;
  10. 只复制部分数据
    CREATE TABLE copy3
    SELECT id,au_name
    FROM author
    WHERE nation =’中国’;
    常见的数据类型
    数值型:整型 浮点型
    字符型:较短的文本 char varchar
    较长的文本 text blob(较长的二进制数据)
    日期型:
  11. 整型 分类
    Tinyint smallint mediymint int/integer bigint
    1 2 3 4 5 (字节)
    常见约束
    含义:一种限制 用于限制表中的数据 为了保证表中的数据 的真确和可靠性
    分类:六大约束
    NOT NULL 非空, 用于保证该字段的值不能为空
    比如姓名 学号等
    DEFAULT 默认 用于保证该字段有默认值
    比如性别
    PRIMARY KEY 主键 用于保证该字段的值具有唯一性 并且非空
    比如学号 员工编号等
    UNIQUE 唯一 用于保证该字段的值具有唯一性 可以为空
    比如 座位号
    CHECK 检查约束 Mysql 不支持
    FOREIGN KEY 外键 用于限制两个表的关系 用于保证该字段的值必须来自于主表的关联列的值
    CREATE TABLE 表名(
    字段名 字段类型 约束
    )
    一 创建表时添加约束
    添加列级约束
    USE students;
    CREATE TABLE stuinfo(
    Id INT PRIMARY KEY ,#主键
    stuName VARCHAR(20) NOT NULL,#非空
    gender CHAR(1) CHECK (gender=’男’ OR ‘女’),#检查
    seat INT UNIQUE ,#唯一
    age INT DEFAULT 18,#默认约束
    majorId INT FOREIGNS major(id) #外键
    );
  12. 添加表级约束
    DROP TABLE IF EXISTS stuinfo;
    CREATE TABLE stuinfo(
    Id INT,
    Studname VARCHAR(20),
    Gender CHAR(1)
    Seat INT ,
    Age INT,
    Majorid INT,
    CONSTRAINT pk PRIMARY KEY(id), #主键
    );
    主键和唯一的大对比
    都可以保证唯一性 , 主键不允许为空 唯一可以
    主键一个表中最多有一个 唯一可以有多个
    外键 :1.要求在从表设置外键关系
    2.从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求
    3.主表的关联列必须是一个key ,
  13. 插入数据时,先插入主表 在插入从表
    删除数据时,先删除从表 在删除主表

二.修改表时添加约束
语法: alter table 表名 modify column 字段名 字段类型 新约束;
添加表级约束
Alter table 表名 add 【constraint 约束名】 约束类型(字段名);
1.添加非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR (20) NOT NULL

三.修改表时删除约束
删除非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR (20) NULL;
删除默认约束
ALTER TABLE stuinfo MODIFY COLUMN age INT;
删除主键
ALTER TABLE stuinfo DROP PRIMARY KEY;
标识列
又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值
一 创建表示设置标识列
CREATE TABLE tab (
Id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值