zoukankan      html  css  js  c++  java
  • 我的学习之路_第十八章_SQL语句


    SQL语句
    启动数据库: net start mysql 关闭数据库: net stop mysql

    登录数据库 : cmd-->命令行-->mysql-->mysql -u账号 -p密码

    【创建和删除数据库】

    使用关键字 : create(创建) database(数据库)

    格式: create database 数据库名;

    create database 数据库名 character set 字符集;

    ●--查看mysql中所有的数据库

    show database;

    ●--查看某个数据库的定义的信息

    show create database 数据库名;

    ●--切换数据库

    use 数据库名;

    ●--查看正在使用的数据库

    select database();

    ●--删除数据库

    drop database 数据库名;


    【创建表的SQL语句】

    创建数据库表,使用关键字 create(创建) table(表)
    [] : 数据库中是可选的意思,可以有,可以没有

    格式:
    create table 表名(
    字段名 数据类型[长度] [约束],
    字段名 数据类型[长度] [约束],
    ...
    字段名 数据类型[长度] [约束](最后一个不能有逗号)
    );

    主键约束: primary key 字段不能为null,不能重复

    ●--查看当前数据库中所有的表

    show table;

    ●--查看表结构

    desc 表名 ;

    ●--删除表

    drop table 表名 ;

    【修改表结构格式】

    关键字 : alter(修改) modify(更改) change(改变)

    ●--修改表添加列

    alter table 表名 add 列名 类型[长度] [约束];

    ●--修改表修改列的类型长度及约束

    alter table 表名 modify 列名 类型[长度] [约束];

    注意:如果有数据,必须注意数据类型 varchar --> int 容易有错误数据

    ●--修改列名以及数据类型和约束

    alter table 表名 change 原列名 新列名 类型[长度] [约束];

    ●--删除列

    alter table 表名 drop 列名;

    注意:如果列中有数据,数据就会一起删除了,需谨慎

    ●--修改表名

    rename table 表名 to 新表名;

    ●--修改表的字符集

    alter table 表名 character set 字符集;

    注意:不建议执行,有可能会产生乱码

    【插入表数据】

    使用关键字 : insert(插入) [into]

    格式:
    包含主键:insert into 表名(字段1,字段2...) values(值1,值2...);
    主键自增,省略主键: insert into 表名(不包含主键) values (不包含主键);

    注意事项:
    1.字段和值一定要一一对应(个数,数据类型)
    2.除了数值类型(int ,double)其他的数据类型都需要使用引号包裹起来
    可以使用双引号,也可以使用单引号,推荐使用单引号

    ●--包含主键

    insert into 表名(字段1,字段2...) value(值1,值2...);

    ●--创建表,主键自增 auto_increment(主键自己添加,自己增长)

    create table 表名(

    字段 数据类型[长度] primary key auto_increment,
    字段 数据类型[长度][约束],
    ...
    );

    ●--主键自增,省略主键:

    insert into 表名(不包含主键) values (不包含主键);

    ●--批量插入数据

    格式:
    包含主键: insert into 表名(字段1,字段2...) values (值1,值2...)
    主键自增,省略主键: insert into 表名 (不包含主键) values (不包含主键),(值1,值2...)

    ●--省略字段名格式:必须给出全部字段的值(包含主键)

    格式:
    insert into 表名 values(全部字段的值);
    insert into 表名 values(全部字段的值),(全部字段的值)...

    ●--记不住主键,可以使用null,sql会自动计算主键

    insert into 表名 values(null,字段);

    【更新表数据】

    使用关键字: update(更新) set(设置)
    格式:
    不带条件过滤,一次修改列中所有的数据(慎用)

    update 表名 set 字段名=字段值,字段名=字段值...

    带条件过滤,使用关键字 where

    update 表名 set 字段名=字段值.字段名=字段值...where 过滤的条件

    【删除表数据】

    使用关键字 : delete(删除) from(来自)

    格式:
    delete from 表名 [where 过滤条件]

    delete from 表名 : 删除标作用的所有数据,但是不会删除主键自增

    truncate table 表名 : 删除表中的所有数据,会删除主键自增,让主键自增重置,从1开始

    【主键约束】

    使用关键字 : primary 可以
    作用:
    约束主键列不能为null
    不能重复
    每一个表必须有一个主键,且只能有一个主键
    主键不能使用业务数据

    ●--添加主键的第一种方式,在列名之后直接添加(创建表的时候直接添加)

    ●--添加主键的第二种方式,使用constraint区域

    [constraint 名称] primary key (字段列表);

    如果不给出主键的名字,可以省略关键字 constraint

    ●--添加主键的第三种方式,创建表之后,通过修改表结构,添加主键

    alter table 表名 add [constraint 名称] primary key (字段列表);

    ●--删除主键

    alter table 表名 drop primary key ;

    ●--联合主键 : 使用2个以上的字段为主键

    create table 表名(
    字段 数据类型[长度],
    字段 数据类型[长度],
    ...
    primary key(字段, 字段)
    );

    【非空约束】

    使用关键字 : not null

    作用:强制约束某一列不能为null(不接受null值)

    ●--创建非空约束第一种格式,创建表时,在字段后面直接给出

    字段 数据类型[长度] not null ;

    ●--创建非空约束第二种格式,修改表结构

    alter table 表名 modify 列名 数据类型[长度] [约束];

    ●--删除非空约束

    alter table 表名 modify 列名 数据类型[长度];

    【唯一约束】

    使用关键子: unique

    作用:添加了唯一约束的字段,不能重复

    ●--创建唯一约束的第一种格式,创建表时,在字段后直接给出

    字段 数据类型[长度] unique ;

    ●--创建唯一约束的第二种格式,创建表时使用 [constraint 名称] unique (字段列表)

    create table 表名(

    字段1 数据类型[长度],
    字段2 数据类型[长度],
    ...
    constraint unique(字段2)

    );

    ●--创建唯一约束的第三种格式,创建表之后,修改表数据

    alter table 表名 modify 列名 类型[长度] unique ;

    ●--删除唯一约束

    alter table 表名 drop index 名称
    定义约束的时候,如果没有创建名称,则名称为字符串(字段),如果创建了名称,就写创建时的名称

    【默认约束】

    给字段添加一个默认值,如果字段没有插入值,则使用默认值

    使用关键字: default 值

    ●--创建默认约束方式一,创建表,列数据类型后面 default '默认值'

    ●--创建默认约束方式二,修改表结构

    alter table 表名 modify 列名 数据类型[长度] default '默认值' ;

    ●--删除默认约束

    alter table 表名 modify 列名 数据类型[长度] ;

  • 相关阅读:
    利用Spring AOP自定义注解解决日志和签名校验
    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差
    @RequestBody配合@JsonFormat注解实现字符串自动转换成Date
    Mysql的时间类型问题
    IntelliJ IDEA使用maven-javadoc-plugin生成Java Doc控制台乱码
    Maven学习笔记(十二)-maven打包之resource配置
    SpringBoot使用@Value从yml文件取值为空--注入静态变量
    cloud server ribbon 自定义策略配置
    JNA 如何 加载多个 存在依赖的 DLL 库
    Remote Desktop File Format
  • 原文地址:https://www.cnblogs.com/jia-/p/7078363.html
Copyright © 2011-2022 走看看