• mysql中sql语法使用


    sql 语句主要分为下面三种

    DDL 数据定义语言包含数据库及其对象的语句。
    DML 数据操作语言,包含允许更新和查询数据的语句(查询语句还可分为DQL)
    DCL 数据控制语言允许授予用户访问数据库中特定数据的权限

    DDL 数据库操作

    • 创建数据库 DDL
    # 创建数据库
    create database '库名' default charset 'utf8'
    # 在 linux 中不需要登陆创建数据库
    mysql -p'密码' -e "create database '库名' default charset 'utf8'"
    
    • 1
    • 2
    • 3
    • 4
    • 切换数据库
    use '库名'
    
    • 1
    • 查看所有数据库
    show databases;
    
    • 1
    • 查看当前在哪个库中
    select database();
    
    • 1
    • 删库
    drop database 库名;
    
    • 1
    • 查看创建的库信息
    show create database 库名;
    
    • 1
    • 数据库命名格式

    数据库命名规则:
    区分大小写
    唯一性
    不能使用关键字如 create SELECT
    不能单独使用数字

    关于 Linux 中 mysql 登陆语句详解

    在 Linux 中,通常登陆 mysql 的 shell 语句是下面这句:

    mysql -uroot -p'密码'
    
    • 1

    但是这个是不完整的,有一些缺省的参数,而完整的语句是下面这句:

    mysql -uroot -p'密码' -hlocalhost -P3306 -S/var/lib/mysql/mysql.sock
    -u # 这个是指定登陆的用户
    -p # 这个是登陆用户的密码
    -h # 登陆的 ip 地址
    -P # 这个是端口号
    -S # 套接字文件地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ** 还有一种语法就是进去到 mysql 服务器,直接在外部执行 mysql 语句 **

    mysql -uroot -p'密码' -e 'sql 语句'
    # -e 后面可以接 sql 语句,可以实现在 linux 终端执行 sql 语句
    
    • 1
    • 2

    DDL 表的操作

    创建修改添加删除等一些操作

    • 创建表 create table
    create table 表名 (
            字段名 1  类型  约束,
            字段名 2  类型  约束,
    );
    el:
    create table school (
    id int not null primary key auto_increment comment '学校 id 号',
    name varchar(100) null comment '学校名'
    )# 在上面的 sql 语句中
    # id  字段名
    # int 是数据类型
    # not null primary key auto_increment comment '学校 id 号',    这些都是对字段的约束
    not null # 不为空 =》 表示此字段不能为空
    primary key # 主键   一般对字段添加主键约束,会自动添加一个 not null 约束  因为主键不能为空
    auto_increment # 这个是自增 也会自动给字段添加一个 not null 的约束,使用 insert 添加数据时,可不给此字段添加数据,会自动+1
    comment  # 相当于备注  就像你有一个大名,家里人有时候还会喊你的小名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    我列不完所有的约束,也写不完所有的数据类型,如果你想了解她,不如你主动向她挥手。
    e 一把

    • 查看表结构
    desc 表名;  # 可以查看 表中字段信息
    show create table 表名 # 可以查看创建当前表所需要的 sql 语句
    
    • 1
    • 2
    • 查看当前在哪个库中
    select database();
    
    • 1
    • 查看当前库中表有哪些
    show tables;
    
    • 1
    • 显示数据的详细信息
    show table status lick '表名';
    
    • 1
    • 修改表
    # 修改表名
    alter table old_name rename new_name
    # 也可以使用下面这个修改表名
    rename table old_name to new_name
    
    • 1
    • 2
    • 3
    • 4
    • 复制表
    # 复制表中所有东西
    create table new_name (select * from old_name )
    # 复制表结构
    create table new_name (select * from old_name  where 5 = 4)   # 只要 where 后面等式结果返回的值为 false 就可以了
    # 复制表中的记录
    insert into new_name select * from old_name;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 修改字段
    alter table 表名 add 新字段名 类型 约束  after 旧字段名
    # 上面这个意思是给表添加一个新字段,放在旧字段后面。如果是 first  就是在表添加一个字段在第一列
    # 将表中的旧字段名修改为新的字段名
    alter table 表名 change 旧字段名 新字段名 类型  约束
    # 修改表中字段的类型和约束
    alter table 表名 modity 字段名 类型 约束
    # 删除一个字段
    alter table 表名 drop 字段
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 删除表
    drop table 表名
    
    • 1
    • 查询表
    select * from 表名
    selete 字段名 from 表名
    select 字段名 as 表列名 from 表名
    # * 表示查询所有的字段
    # as 相当于别名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 添加数据
    insert into 表名 values (数据);
    insert into 表名 value(数据),(数据);
    # 上面的使用 value 和 values 都没啥区别
    
    • 1
    • 2
    • 3
    • 更新数据
    update 表名 set 字段 = 修改后的值  where 字段 =# 比如 a表中的数据有下面
    id   name    age
    1      a     22
    # 如果将 age 的值修改为 23
    update a set age=23 where id=1
    # 这个 where 相当于对某一记录进行操作
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 删除表中的一条记录
    delete 表名 where 字段=delete 表名     # 直接使用这个的话,会直接清空表中的数据
    
    • 1
    • 2
  • 相关阅读:
    Java Spring Cloud XVI 之 Redis II
    低市值Pow赛道解析,探寻百倍潜力项目
    JavaDemo——关于BigDecimal类
    苹果推出Tap to Pay功能,iPhone将成为收费终端
    无向图欧拉路径问题
    弘辽科技:淘宝的各个级别的店铺有多少自然流量?具体解答
    1024程序员狂欢节有好礼 | 前沿技术、人工智能、集成电路科学与芯片技术、新一代信息与通信技术、网络空间安全技术
    技术团队如何高效落地代码CR
    金仓数据库 KingbaseES 与 Oracle 的兼容性说明(4. SQL)
    MQ发布确认
  • 原文地址:https://blog.csdn.net/XiaoLinZuoTi/article/details/133321502