MySQL数据库 Day01

MySQL数据库 Day01

1. MySQL的安装及配置

1.1 什么是数据库 SQL?

SQL指结构化查询语言,SQL是用于访问和处理数据库的可以与数据库交互的计算机语言,SQL是一种ANSI 标准的计算机语言。SQL属于非过程化语言

1.2 支持SQL语言的RDBMS数据库有那些?

RDBMS指关系型数据库管理系统, RDBMS是SQL的基础,同样也是所有现当数据库系统的基础,支持SQL语言的RDBMS数据库有MS SQL Sever、IBM DB2、Oracle、MySQL以及 Microsoft Acces。 RDMBS 中的数据存储在数据库对象数据表中, 数据表是相关的数据项的集合,他又列和行组成的二维表

1.3 SQL语言分类有那些(面试)

  1. DDL 数据定义语言 (针对数据表的结构)

用于数据定义语言,他主要用于定义和管理数据库的各种对象,如:数据表、视图、索引。对数据表进行创建、修改、删除的操作使用的SQL语言属于DDL,数据定义语言针对的是数据表的结构,不是数据表里的数据
DML 三个月还有操纵语言
2 ) DML 数据操作语言:用于插入或更新修改和删除数据

  • INSERT INTO …
  • UPDATE … SET…
  • DELETE FROM
    3) DQL 数据查询语言 (重点)
    DQL 数据查询语言主要用于查询检索数据,DQL数据查询语言用于检索数据库中的数据,主要是SELECT语句。他在操作数据库的过程中使用最为频繁,SELECT 语句是数据库中用于查询的语句
    4)DCL 数据控制语言 (授予权限)
    DCL 数据控制语言:用于定于数据用户权限等,DCL数据控制语言用于执行权限,授予和权限收回操作。主要包括 GRANT 和 REVOKE两条命令。其中GRANT命令用于给用户或角色授予权限,而REVOKE命令 则用于收回用户或角色所具有的权限。
  • GEANT … TO…
  • REVOKE … FROM…
    5) TCL 事物控制语言
    TCL 事物控制语言用于维护数据的一致性 , 包括>COMMIT、ROLLBACK 和SAVEPOINT语句。 其中, COMMIT 语句用于提交对数据库的更改,ROLLBAKE 语句用于取消对数据库的更改,而SAVEFOINT 语句则用于保存点
    面试题
  1. 数据定义语言是用于()的方法。
    A 确保数据的准确性
    B 定义和修改数据结构
    C 查看数据
    D 删除和更新数据
  2. 操作数据库的过程中使用最为频繁的是()
    A CREATE
    B DROP
    C SHOW
    D SELECT
    答案 B D

1.4 数据的类型

常用的数据类型 int varchar char date datetime text等

  1. 整数型 INT 字节数 4 INTEGER 等等 区别是 取值范围不同
  2. 浮点型和定点类型 FLOAT 字节数4 DOUBLE 字节数8 DECIMAL(M,D) 字节数 M+2
  • float(m,n)m 是所有位数 (整数+小数) n表示 小数位
  1. 时间日期类型
  • YEAR 字节1 0000
  • DATE 字节4 0000:00:00
  • TIME 字节3 00:00:00
  • DATETIME 字节 8 0000-00-00 00:00:00
  • TIMESTAMP 字节4 最大时间
  1. 字符串类型
  • CHAR:255 char(5) 固定字符串
  • VARCHAR:65535 可变字符串 varchar(5) TEXT文本 保存大文本,字符串数据
  1. 二进制类型

1.5 MySQL 常见的约束条件有哪些?

1)主键约束PRIMARY KEY(PK) 唯一标识表中的某一条记录, 相当于非空 + 唯一
一个表中只能有一个主键,可以有一个字段标识,也可以由多个字段联合(联合主键)组成,如果采用联合主键时,每隔字段都不能为空
2)非空约束 确保字段值不能为空
3)* 唯一约束 确保所在的字段不出现重复值,但允许出现NULL值, UNIQUE表示*
4)* 外键约束FORRIGN KEY FK 用 REFERERENCES表示参照,主要作用:确保相关的两个字段之间的参照关系,被参照的表称作主表,参照主表的表 称为子表,子表中的参照字段可以位空,或者来自主表,删除子表中的数据时,主表中的数据不被删除,反之,删除主表中的数据时,如果子表中有参照记录,则主表记录不能删除*
5) auto_increment 自增 (放在主键上) 在保重差额u数据时,如果不对该字段赋值,会自动在以由的最大值的基础上+1
6)dafault 默认值 在表中插入数据时,如果不对该字段赋值,该字段将使用默认值
7)unsigned -无符号说明次字段位无符号整数类型
8) zerofill 表示0填充 定义了数据类型的长度,如果世纪位数小于定义的长度,显示会在左边用0填充。
面试题2:
在设计数据库时,要充分考虑数据的完整性或准确性。
关于 PRIMARY KEY 和 UNIQUE的描述错误的是
A PRIMARY KEY 用来在表中设置主键 主键列的值是可以重复的 , 用来唯一标识表中的每一条记录
B PRIMATY KEY 列不可以有null值 而UNIQUE列 是可以有null值
C PEIMARY KEY 列和UNIQUE 列都不可以有null值
D 设为UNIQUE 的列的值是不能重复的,用来唯一区别 UNIQUE列的值
答案 A C

2. MySQL的常用基本操作命令

2.1 如何创建数据表

1) 创建数据库的基本表的创建

   CERATE TABLE [IF NOT EXISTS] 表名(
       字段1 数据类型1 主键,
       字段2 数据类型2 ,
       字段3 数据类型3 ,
       字段4 数据类型4 
       );
  • IF NOT EXISTS 是可选参数的 如果不指定if not exists语句,创建同名表的时候就会报错
  • 指定了 if not exists 语句来创建表 虽然表明是存在的,但是创建没有报错,但是存在警告信息是表已经存在了
  • 两次创建的表 如果字段不同, 表明相同, 还是不允许创建
   CREAT TABLE t_class(
   cno int(4)primary key,
   cname varchar(15)
   );  
   -- 带IF NOT EXISTS 参数
   CRAEAT TABLE IF NOT EXISTS t_class(
       cno int(4) primary key;
       cname varchar(15) 
   )
  • 带有约束的数据表的创建 语法格式:
 CREATE TABLE DDL(数据定义语言 此处填写表名)(
       字段1   数据类型1   约束条件1 约束条件2 ... , 
       字段2   数据类型2   约束条件,   
       字段3   数据类型3,  
       字段4   数据类型4 );

 )

实例:

    CREATE TABLE t_stu(
        sno int(8) primary key auto_increment,
        sname varchar(30) not null,
        sex char(4) default '男',
        age int(3)unsigned,
        cno int(4)
    )
  • 创建数据表时添加主键约束 和外键约束 实例2:
  •     CREAT TABLE t_stu(
         sno int(8) primary key auto_increment,
          sname varchar(30) not null,
          sex char(4) default '男',
          age int(3)unsigned,
          cno int(4),
          primaty key (sno),
          constraint fk_stu_cno foreign key(cno) references t_class(cno)
        
        )
    
  • 如果是联合主键 primary key(sid,cid)

2.2 如何修改数据表的结构?

1) 如何修改表名?
语法: ALTER TABLE 旧表明 RENAME[TO] 新表名
例如

    ALTLE TABLE t_stu RENAME TO t_student;
  1. 如何修改字段?
    语法: ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新属性类型;
    实例1: 修改字段类型
ALTER TABLE t_student CHANGE stu_id stu_id int(6);

实例2 修改字段名和类型

ALTER TABLE t_student CHANGE stu_id sid int(5);
  1. 如何增加字段?
    语法 AELTE TABLE 表明ADD 新属性名 新属性类型[完整性约束][first | after 原有字段];
    3.1) 新增无完整性约束的字段示例:
ALTER TABLE t_student ADD email varchar(20);

3.2) 新增有完整性约束的字段实例:

    ALTER TABLE t_student ADD age int not null;

3.3)将字段添加到第一位实例:

    AELTER TABLE t_student ADD sid int primary key first;

3.4)将字段添加到某个字段之后示例:

    AELTER TABLE t_student ADD address varchar(100) after telephone;
  1. 如何删除字段?
    语法: ALTER TABLE 表名 DROP 属性名;
    示例:
AELTER TABLE t_student DROP address;
  1. 如何给自己创建好的表增加主键约束?
    语法: AELTE TABLE 表名 ADD PRIMARY KEY (主键列名)
    AELTER TABLE t_class ADD PRIMARY KEY(cno);
  1. 如何删除主键约束?
    语法: ALTER TABLE 表名1 DROP PRIMARY KEY;
    实列
ALTER TABLE t_class DROP PRIMATY KEY;
  1. 如何给一创建好的表增加外键约束
ALTER TABLE t_student ADD CONSTRAINT fk_stu_cno FOREIGE KEY(cno) REFERENCES t_class(cno);

  1. 如何删除外键?
ALTER TABLE t_student DROP foreign  fk_t_stu_cno

注意 :MySQL 在外键后,会自动健一个同名的索引。所以要删除外键,需要同时删除这个同名索引。

ALTER TABLE t_student DROP index fk_t_stu_cno;
  1. 如何删除数据表?
    语法 : DROP TABLE[ID EXISTS]表名:
DROP TABLE t_test;
-- 带 IF EXISTS 参数
DROP TABLE IF EXISTS t_test;

面试题3 :
DROP TABLE 和TRUNCATE TABLE 的异同?

  • DROP TABLE
  • DDL 语言
  • 用于删除表 包括表的结构,属性以及索引也会被删除
  • 无法回退,彻底删除
  • TEUNCATE TABLE
  • DDL 语言
  • 默认所有的表的内同都删除, 表结构不会被删除
  • 无法回退
  • 删除速度比delete快

3. 学会使用 Navicat

4. 使用DDL语句创建school数据库并使用数据库

5. 修改数据表的结构


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值