4.1创建数据库
4.1.1创建数据库
我们可以使用以下命令来创建数据库<br /> **语法:**
create database 数据库名;
4.2.1确认创建的数据库
我们可以通过show 命令来查看创建的数据<br /> 语法:
show databases;
4.1.3指定使用的数据库
mysql中并不是启动后就能立即使用数据库,还需要显示的声明使用什么数据库<br /> ** 语法:**
use 数据库名
** 显示当前使用的数据库:**<br /> 我们可以通过select database();来查看当前使用的数据库
4.2 创建表
4.2.1创建数据表:
我们可以通过create table 命令来创建表<br />** 语法:**
create table 表明(列名1 数据类型1,列名2 数据类型2.。。。);
示列:创建员工信息表tb1:
mysql> create table tb1(empid varchar(10),name varchar(10),age int)charset=utf8;
Query OK, 0 rows affected (0.02 sec)
4.2.2显示所有表
显示数据库中所有的表需要使用show tabels;
4.2.3确认表的列结构
用于显示表的接口的命令是desc或describe,使用前者即可
语法:
desc 表名
示列:显示tb1表的列结构
mysql> desc tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| empid | varchar(10) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql>
4.2.4设置主键
1.**主键**:<br /> 是在多条记录中确定唯一一条记录的标识符<br /> 2.**主键需具备一下特征:**<br /> 1.没有重复的值<br /> 2.不允许空值<br /> 3.**创建主键:**<br /> 在创建表的时候创建主键<br />** 语法:**
create tbale 表名 (列名 数据类型 primary key…)
示列:创建带主键的表
mysql> ;create table t_pk(a int primary key,b varchar(10));
ERROR:
No query specified
Query OK, 0 rows affected (0.01 sec)
mysql> desc t_pk;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a | int(11) | NO | PRI | NULL | |
| b | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql>
在设置为主键的列中,不能使用insert update 命令输入已经存在的值
4.2.5设置唯一键
我们还可以使用unique来设置具有不重复限制性质的唯一键,虽然不允许有重复,但允许输入null;<br /> ** 示列:**
mysql> create table t_uniq(a int unique,b varchar(10));
Query OK, 0 rows affected (0.03 sec)
mysql> desc t_uniq;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a | int(11) | YES | UNI | NULL | |
| b | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql>
4.3向表中插入数据
4.3.1插入数据
我们可以使用下面的命令来向表中插入数据<br /> **语法**
insert into 表名 (列1,列2)values (数据1,数据2,数据3);
** 示列一:向tb1表中插入数据**<br />
mysql> insert into tb1 values('A1004','渡边',23);
Query OK, 1 row affected (0.00 sec)
mysql>
<br /> ** 示列二:一次性输入多行记录**
mysql> insert into tb1 (empid,name,age)values('A101','佐藤',40),('A102','高桥',28),('A103','中川',20),('A104','渡边',23),('A105','西泽',35);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select *from tb1;
+-------+------+------+
| empid | name | age |
+-------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高桥 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡边 | 23 |
| A105 | 西泽 | 35 |
+-------+------+------+
5 rows in set (0.00 sec)
mysql>
4.4显示数据
使用select命令能让列的数据显示出来
语法:
select 列名1,列名2…from 表名
使用select输出指定的值
select命令还能用于显示与数据库无关的值,这种方法通常用来确认函数的值或计算结果
示列:
mysql> select '测试';
+------+
| 测试 |
+------+
| 测试 |
+------+
1 row in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2021-05-31 14:19:26 |
+---------------------+
1 row in set (0.00 sec)
mysql>
4.5使用列具有自动连续编号功能
4.5.1具有自动连续编号功能列的定义:
要使列具有自动连续编号功能,就得在定义列的时候进行3项设置<br /> 1.数据类型为int等整数类型<br /> 2.加上 AUTO_INCREMENT<br /> 3.设置 Primary key,使列具有唯一性<br />** 示列:创建具有自动连续编号的列**<br />
mysql> create table t_series (a int auto_increment primary key,b varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> desc t_series;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| a | int(11) | NO | PRI | NULL | auto_increment |
| b | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql>
4.5.2设置连续编号的初始值
拥有自动连续编号功能的列还可以设置任意的值<br /> 1.初始化AUTO_INCREMENT的值<br /> 如果向有自动连续便号的列中添加了值,当把这些值删除之后,如果在重写输入数据呢,则编码不会从1开始分配,而是从已有的最大值+1开始
mysql> insert into t_series (b)values('aa'),('bb'),('cc');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select* from t_series;
+---+------+
| a | b |
+---+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
+---+------+
3 rows in set (0.00 sec)
mysql> delete from t_series;
Query OK, 3 rows affected (0.00 sec)
mysql> insert into t_series (b) values ('cc');
Query OK, 1 row affected (0.00 sec)
mysql> select* from t_series;
+---+------+
| a | b |
+---+------+
| 4 | cc |
+---+------+
1 row in set (0.00 sec)
mysql>
如果想让编号重1开始就要初始化Auto_inccrement的值<br /> 语法
alter table 表明 AUTO_INCREMRNT=1;
示列:
mysql> delete from t_series;
Query OK, 2 rows affected (0.00 sec)
mysql> alter table t_series auto_increment=1;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into t_series (b) values ('cc');
Query OK, 1 row affected (0.00 sec)
mysql> select* from t_series;
+---+------+
| a | b |
+---+------+
| 1 | cc |
+---+------+
1 row in set (0.00 sec)
mysql>
4.6设置列的默认值
在设置列的默认值时只需要给列加上default关键字<br /> **语法**
create table 表名(列名 数据类型 default 默认值);
示列:想tb1中name列设置默认值
mysql> alter table tb1 modify name varchar(10) default '未输入名字';
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into tb1 (empid ,age)values('N110',25);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tb1;
+-------+------------+------+
| empid | name | age |
+-------+------------+------+
| A101 | 佐藤 | 40 |
| A102 | 高桥 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡边 | 23 |
| A105 | 西泽 | 35 |
| N110 | 未输入名字 | 25 |
+-------+------------+------+
6 rows in set (0.00 sec)
mysql>
