MYSQL数据库

MySQL

本文是学习实验楼-MYSQL基础课程笔记,希望实际操作的可以看原课程。
虽然是对MySQL数据库的介绍,但是比较基础所以也是SQL数据库基本操作的总结。提醒自己后续进行深入学习

  • 创建数据库
    CREATE DATABASE namedb;
    show databases;

  • 创建表格
    CREATE TABLE nametab (字段 类型,…);
    show tables;

    数据类型查看

    约束

    束类型主键默认值唯一外键非空
    键字PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL

    主键

    1. CREATE TABLE nametab (
      ziduan1 int(10) PRIMARY KEY
      ziduan2 char(20),
      ziduan3 int (14)
      );
    2. CREATE TABLE nametab (
      ziduan1 int(10) ,
      ziduan2 char(20),
      ziduan3 int (14),
      CONSTRAINT ziduan1_pk PRIMARY KEY(ziduan1)
      );
    3. 复合主键
      CREATE TABLE nametab (
      ziduan1 int(10) ,
      ziduan2 char(20),
      ziduan3 int (14),
      CONSTRAINT fuhe_pk PRIMARY KEY(ziduan1,ziduan2)
      );

    默认值

    1. CREATE TABLE nametab (
      ziduan1 int(10) DEFAULT 10
      ziduan2 char(20),
      ziduan3 int (14),
      );

    唯一

    1. CREATE TABLE nametab (
      ziduan1 int(10) ,
      ziduan2 char(20),
      ziduan3 int (14),
      UNIQUE(ziduan3)
      );
      ziduan3在整个表中不可重复,insert时有重复会冲突,insert会失败

    外键

    1. CREATE TABLE nametab1 (
      ziduan1 int(10) ,
      ziduan2 char(20),
      ziduan3 int (14)
      );
      CREATE TABLE nametab2 (
      ziduan1 int(10) ,
      ziduan2 char(20),
      ziduan3 int (14),
      CONSTRAINT emp_fk FOREIGN_KEY(ziduan1 ) REFERENCES nametab1(ziduan1)
      );

    非空约束

    1. CREATE TABLE nametab1 (
      ziduan1 int(10) NOT NULL
      ziduan2 char(20),
      ziduan3 int (14)
      );

常用自增:(必须int类型)
CREATE TABLE nametab1 (
ziduan1 int(10) NOT NULL AUTO_INCREMENT,
ziduan2 char(20),
ziduan3 int (14)
);


  • insert into nametab (字段1, 字段2,…) VALUES (值1,值2,…);


  • drop database namedb;
    drop table namtab;
    删除列:
    ALTER TABLE 表名字 DROP COLUMN 列名字;
    ALTER TABLE 表名字 DROP 列名字;
    删数据:
    DELETE FROM 表名字 WHERE 条件;

  • 不允许修改数据库名字,若想修改数据库,则重建导出

  • 改表名:
    RENAME TABLE 原名 TO 新名字;
    ALTER TABLE 原名 RENAME 新名;
    ALTER TABLE 原名 RENAME

  • 改表结构
    添加列:
    ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
    ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
    重命名:(若数据类型改变可能导致数据丢失)
    ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
    只修改数据类型:(可能导致数据丢失)
    ALTER TABLE 表名字 MODIFY 列名字 新数据类型;

  • 改数据
    UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;


  • select */字段1,字段2… from nametab where 条件
    条件:

  • 条件1 AND/OR 条件2  id>10 AND grade <60

  • IN/NOT IN         id IN (1,3,5,7,8,9)

  • LIKE & _ (一个未指定字符),% (不定个未指定字符)
    select * from nametab where phone like ‘0411 8789 05__’;
    select * from nametab where name like ‘c%’;

  • 排序 (ASC 升序 DESC 降序)
    SELECT * FROM nametab ORDER BY id DESC;

  • 内置函数

    数名COUNTSUMAVGMAXMIN
    计数求和求平均值最大值最小值

    SELECT MAX(age) AS older ,MIN(age), AVG(age) FROM nametab ;

  • 子查询函数
    SELECT* FROM nametab WHERE id IN (SELECT id FROM grades WHERE grade<60);
    SELECT* FROM nametab GROUP BY class HAVING id IN (SELECT id FROM grades WHERE grade<60);

  • 连接 join
    SELECT id,name,people_num
    FROM employee,department
    WHERE employee.in_dpt = department.dpt_name
    ORDER BY id;
    等价与
    SELECT id,name,people_num
    FROM employee JOIN department
    ON employee.in_dpt = department.dpt_name
    ORDER BY id;

  • 索引
    ALTER TABLE 表名字 ADD INDEX 索引名 (列名);
    CREATE INDEX 索引名 ON 表名字 (列名);

  • 视图
    CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;

  • 数据导入导出
    LOAD DATA INFILE ‘文件路径和文件名’ INTO TABLE 表名字;
    SELECT 列1,列2 INTO OUTFILE ‘文件路径和文件名’ FROM 表名字;

  • 使用 mysqldump 备份
    mysqldump -u root 数据库名>备份文件名; #备份整个数据库
    mysqldump -u root 数据库名 表名字>备份文件名; #备份整个表

  • 恢复

  1. source sql文件
  2. mysql -u root 新数据库< 恢复的sql文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值