MySQL学习笔记

2019.6.19

1.创建数据库

  使用命令

    任意打开一个数据库,选择QUERY->NEW QUERY->打开SQL窗口

    书写创建库的命令

      create database 库名 default character set 编码表;

      示例:

      create database wollo default character set utf8;

      MySQL的注解为 ##注解内容

    切换数据库到新建库

      use 库名

  使用图形化界面

    在连接名上右键->new database->弹出新建库的窗口->输入库名->选择编码格式为utf8->点击ok即可

2.删除数据库

  使用命令:

    任意打开一个数据库,选择QUERY->NEW QUERY->打开SQL窗口

    drop database 库名;

  使用图形化界面:

    选择要删除的库:右键->database即可

3.MySQL中创建表:

  创建表语句:
    create table 表名(字段名 类型 约束,字段名 类型 约束,。。。)

create table student(
    sid int(10) not null auto_increment primary key,
    sname varchar(100) not null,
    sage int(3),
    ssex char(4),
    sbirth date
)
##主键自增在创建表的字段后使用 auto_increment
##新增字段
alter table student add money float;
##插入数据
insert into student values(default,'张三',18,'''2018-02-22',2000.0); 

  MySQL常见字符类型

     数值类型:

       int(长度):表示整数类型的数据

       float/double:表示浮点数

     字符类型:

       varchar(长度):动态分配存储长度

       char(长度):分配固定长度

     日期类型:

       date:格式为 yyyy-MM-dd

       datetime:格式为 yyyy-MM-dd hh:mm:ss 占用8个字节

       timestamp:特点:会自动进行时区的转换,占用4个字节

       time:时间

       year:年份

     其他类型:

       TEXT:非二进制大对象(字符)比如:新闻

       BLOB:二进制大对象(非字符)

4.约束

  主键约束:

    在创建表时在字段后使用primary key即可

    在创建表语句的最后使用constraint 约束名 primary key(主键字段名)

    在创建表的外部添加约束:alter table 表名 add constraint 约束名 primary key(字段名)

  非空约束:

    在创建表的时候直接在字段后使用not null即可

    在创建表后使用alter table 表名 modify 字段名 类型 not null

    注意:mysql的非空约束中空字符可以存储进去

  检查约束:

    问题:在MySQL中没有检查约束,但是使用check关键字不会报错

    解决:使用代码逻辑进行无效数据的过滤

       使用MySQL的存储过程(百度)

  唯一约束:

    在字段名后直接使用unique关键字

    在创建表语句的最后面使用constraint 约束名 unique(主键字段名)

    在创建表的外部添加约束:alter table 表名 add constraint 约束名 unique (主键字段名)

  外键约束:

    在字段名后直接使用 references 父表名(父表主键名)

    在创建表语句的后面使用constraint 外键约束名 foreign key(字段名) refenences 父表名(父表主键名)

    在创建表的外部添加约束:alter table 表名 add constraint 外键约束名 foreign key(字段名) refenences 父表名(父表主键名)on delete set null on update cascade;

create table student(
    sid int(10) not null auto_increment primary key,
    sname varchar(100) not null,
    sage int(3) not null,
    ssex char(4) not null,
    sqq varchar(20) not null unique,    
    sbirth date,
    cid int(10) references clazz(cid)   
)

5.表的修改删除

  添加字段:

    alter table 表名 add 字段名 类型

  删除字段:

    alter table 表名 drop 字段名
  修改字段类型:

    alter table 表名 modify 字段名 新的类型

  修改字段名:

    alter table 表名 change 字段名  新的字段名 类型

  修改表名:

    alter table 表名 rename as 新的表名

  删除表:

    drop table 表名
6.其他操作

  显示表信息

    show tables

  显示创建表语句

    show create table 表名

  显示库

    show database

7.MySQL的数据操作

  查询:

    单表查询:

      别名:直接空格在字段后使用

      去除重复:使用distinct关键字

      连接符:concat(字段名,字段名)

      排序:order by 字段名

      where子句:

      函数:max,min,avg,sum,count

      分组:group by 字段名

      having:分组后筛选

    多表查询:

      SQL92

      SQL99

    子查询:

      单行子查询

      多行子查询

  增加:

    insert into 表名 values(值1,值2,值3,。。。);全字段插入

    insert into 表名 values(主键,字段,字段,。。。)values(值1,值2,值3,。。。);部分字段插入

  删除:

    delete from 表名 where 条件

  修改:

    update 表名 set 字段名=值,字段名=值。。。where条件

8.分页查询

  使用关键字limit

    select * from 表名 limit m*n-n,n

    m表示页数

    n表示每页显示的数量

9.MySQL的数据备份

  命令方式:

    导出:

      mysqldump -u root -p 数据库名 > dbname.sql

    导入:

      mysql>source d:dbname.sql

  工具方式:

    Navicat上选择导入导出按钮

原文地址:https://www.cnblogs.com/mxj961116/p/11054901.html