数据库的创建(create): create database 数据库名;

数据库的删除(drop): drop database 数据库名;

数据库的切换(use): use 数据库名;

数据库的查看(show,desc): show databases;

数据库详细信息查看: show create database 数据库名;

一 、创建表

表是一种重要的数据库对象,存储数据库中所有的数据,如果把数据库比喻成菜鸟驿站,那表就像驿站中放置快递的架子,一个表就是一个实体集,表实质上是行和列的集合,每一行代表一条记录(元组),每一列代表记录的一个字段(属性)。每个表由若干行组成,表的第一行为各列标题,其余行都是数据。 每一列必须具有相同的数据类型,表的行数和总大小仅受可用空间的限制。 

特殊的NULL(空)值

null值不是“0”,也不是空格,它是一个比较特殊的值。一般表示值是否为空。在进行数据类型定义的时侯,系统一般默认字段值允许为空值,是不会显示的,或者是在图形化操作界面创建表字段操作窗口会有“是否允许为空”的勾选项。如果勾选上了,表示允许值为空。否则不允许为空值。如果是使用命令行窗口,进行数据类型定义,不允许为空时,就要在该数据类型定义行,添加“not null”,还有一种情况,如果在某列上设置了主键,该列也不允许重复值,也不允许出现空值。

表的创建有三个要素:字段名(属性),数据类型(字符串类型、日期时间型、整型),数据特征(是否为空,有没有主键)

1、创建表的方法有两种

第一种:图形化操作:连接服务器后,单击选定数据库展开目录,选择表,在弹出的快捷菜单中选择“新建表”命令,或者使用工具栏上的图形化按钮,均可以进行数据库的创建;

在弹出的表设计器中,输入字段名,数据类型,设置字段是否允许为空等。即完成表结构的设计。接下来可向表中添加数据。

第二种:使用SQL语句进行表的创建

表的创建:create table 表名(字段名1 数据类型(数据长度) 数据特征,字段名2 数据类型(数据长度) 数据特征,字段名3 数据类型(数据长度) 数据特征);

例如:创建一个班级表grade,表结构定义如下:

       字段名       数据类型       长度      是否为空

    BID(班级代码)       char          6           否  

    BNAME(班级名称)   varchar        20          否

    PID系部代码        char          4           否

 创建该表的SQL语句为

Create table grade(bid char(6) not null,

                 Bname varchar(20) not null,

                  Pid char(4) not null);

扩展:创建表时指定存储引擎和字符集

查看数据库中所有的数据表:show tables;

查看某个数据表:show create table 表名注意:此处的表名的是要查询数据表的名称,且要切换到对应用户数据库,否则屏幕会提示出错。

查看表的详细信息,并以表格样式显示:describe 表名=desc 表名;

二、表结构的修改见第五周笔记

三、向表中添加记录

向表中插入数据:

最简单:insert into 表名 values(字段值1,);

最严谨:insert into 表名(字段名1,字段名2,字段名3) values(字段值1,字段值2,字段值3);

使用较少:insert into 表名  set 字段名1=字段值1,字段名2=字段值2;

同时添加多条记录:insert into 表名 values(字段值1,字段值2,字段值3…),(字段值1,字段值2,字段值3…),(字段值1,字段值2,字段值3);

注意:字符串类型的数据在使用的时候要用单引号括起来;字段名和字段值是对应的关系,每个值的顺序、类型必须与对应的字段相匹配。

查看表中所有的数据(查询语句):select * from 表名;

四、删除表:drop table 表名;

小结:create,alter,drop都属于SQL(结构化查询语句)中的数据定义语言。

五、约束是一种限制,它通过限制表中的数据,来确保数据的完整性和唯一性。使用约束来限定表中的数据是很有必要的。约束是为了保证数据完整性提出的,并对用户不符合要求的操作进行终止。

约束的类型:

1)主键约束(primary key)

主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。主键约束具有唯一性。

主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。

2)外键约束

外键约束经常和主键约束一起使用,用来确保数据的一致性。

例如,一个水果摊,只有苹果、桃子、李子、西瓜 4 种水果,那么,你来到水果摊要买水果只能选择苹果、桃子、李子和西瓜,不能购买其它的水果。

3)唯一约束(unique)

唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的,但是只能有一个空值。

例如,在用户信息表中,要避免表中的用户名重名,就可以把用户名列设置为唯一约束。

4)非空约束

非空约束用来约束表中的字段不能为空。例如,在学生信息表中,如果不添加学生姓名,那么这条记录是没有用的。

5)默认值约束

默认值约束用来约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。

以上 6 种约束中,一个数据表中只能有一个主键约束,其它约束可以有多个。

命令行约束的设置:

一、not null

举例:创建表时设置非空约束

create table 表名(字段名 数据类型(长度) 数据特征);

create table stu_1(sno int not null,sname char(8) not null,sex char(2),telephone char(11));

二、命令行方式设置主键约束primary key;

1 、创建表时添加约束

create table stu_1

    (sno int not null primary key,

     sname char(8) not null,

     sex char(2),

     telephone char(11));

或者是在定义完所有字段之后指定主键,语法格式如下:

create table stu_2

    (sno int not null,

     sname char(8) not null,

     sex char(2),

     telephone char(11)

primary key(sno));

2、在已经创建的表中基本字段上添加主键

Alter table 表名 add primary key(字段名);

 结果

3、删除主键约束

Alter table 表名 drop primary key;

扩展:在已创建的表上添加主键约束,并给该约束取名字,便于后期操作。注意:由于主键约束在一个表中只能有一个,因此不需要指定主键名就可以删除一个表中的主键约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);

三、唯一约束:唯一约束与主键约束相似的是它们都可以确保列的唯一性。不同的是,唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但是只能有一个空值。而主键约束在一个表中只能有一个,且不允许有空值。唯一约束可以在创建表时直接设置,通常设置在除了主键以外的其它列上。

1、在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法格式如下:

<字段名> <数据类型> UNIQUE

如:create table stu_3

    (sno int not null primary key,

     sname char(8) not null,

     sex char(2),

     telephone char(11)  unique);

2、在已有表上添加一个唯一约束

ALTER TABLE 表名  ADD CONSTRAINT 约束名 UNIQUE(字段名);

3、删除约束

注意:此处的唯一约束删除有一点麻烦,要知道唯一约束的约束名才能删除,而且在删除时,需要在约束名的前面加上index(索引)标识。

四、默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。

例如,员工信息表中,部门位置在北京的较多,那么部门位置就可以默认为“北京”,系统就会自动为这个字段赋值为“北京”。

默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。

1、创建表时可以使用 DEFAULT 关键字设置默认值约束,具体的语法格式如下:

<字段名> <数据类型> DEFAULT <默认值>;

如:create table stu_3

    (sno int not null primary key,

     sname char(8) not null,

     sex char(2) default ‘男’,

     telephone char(11)  unique);

2、修改表时添加默认值约束的语法格式如下:

ALTER TABLE <数据表名>

Modify <字段名> <数据类型> DEFAULT <默认值>;  注意:如果默认值是字符型,要用英语半角单引号括起来。

使用修改字段的数据类型命令

 删除默认值约束,还是使用修改字段的数据类型命令使用

 综合应用:

五、定义字段值自增长

在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。

通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如下:

字段名 数据类型 AUTO_INCREMENT

注意:

  1. 默认情况下,AUTO_INCREMENT 的初始值是 1,每新增一条记录,字段值自动加 1。
  2. 一个表中只能有一个字段使用 AUTO_INCREMENT 约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。
  3. AUTO_INCREMENT 约束的字段必须具备 NOT NULL 属性。
  4. AUTO_INCREMENT 约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等)。
  5. AUTO_INCREMENT 约束字段的最大值受该字段的数据类型约束,如果达到上限,AUTO_INCREMENT 就会失效。

例如:

mysql> CREATE TABLE tb_student(

    -> id INT(4) PRIMARY KEY AUTO_INCREMENT,

    -> name VARCHAR(25) NOT NULL

    -> );

Query OK, 0 rows affected (0.07 sec)

上述语句执行成功后,会创建名为 tb_student 的数据表。其中,id 为主键,每插入一条新记录,id 的

值就会在前一条记录的基础上自动加 1。name 为非空字段,该字段的值不能为空值(NULL)。

扩展:AUTO_INCREMENT初始值的修改

加上 AUTO_INCREMENT 约束条件后,字段中的每个值都是自动增加的。因此,这个字段不可能出现相同的值。通常情况下,AUTO_INCREMENT 都是作为 id 字段的约束条件,并且将 id 字段作为表的主键。

该字段在添加记录时,可以省略值。

修改后的结果:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐