命令行语法练习
打开命令提示符
win+r
打开运行窗口- 输入
cmd
,回车即可打开命令提示符
开启数据库
- 输入
net start mysql
,开启数据库
MySQL_数据库的基本语法
登录数据库
- 首先输入
mysql -uroot -p
,回车则提示Enter password:
即输入登录密码 - 登陆成功,则命令行会变成
mysql>
; 此时即可对数据库进行操作。
创建一个新的数据库
create database 库名称;
create database if not exists 库名称;
删除某个数据库
drop database 库名称;
drop database if exists 库名称;
查看MySQL中的所有数据库
show databases;
查看数据库的创建方式
show create database 库名称;
对某个数据库进行操作
- 输入
use 库名称;
回车,提示Database changed
表示进入成功
查看某个库里的所有表信息
show tables from 库名称;
MySQL_数据库表的基本语法
查看某个表中的所有信息
select * from 库名称.表名称;
- 进入某个库中之后可以直接使用
select * from 表名称;
在库中创建一个新的表
create table 表名称(列名称 限定,列名称 限定,...) engine=innodb default charset utf8 comment '用户表';
create table if not exists 表名称(列名称 限定,列名称 限定,...) engine=innodb default charset utf8 comment '用户表';
示例:创建一个表,表明为tb_users
,表的结构包括(id
,name
,sex
,birth
,salary
)。
create table if not exists tb_users(
id int primary key auto_increment,
name varchar(20),
sex boolean default 1,
birth date,
salary double(10,2)
)engine=innodb default charset utf8 comment'用户表';
查看当前数据库下的所有表
show tables;
结果如下:
+------------------+
| Tables_in_people |
+------------------+
| tb_users |
+------------------+
查看创建好的表的结构
desc 表名称;
示例结果如下:
mysql> desc tb_users;
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | 1 | |
| birth | date | YES | | NULL | |
| salary | double(10,2) | YES | | NULL | |
+--------+--------------+------+-----+---------+----------------+
修改表的结构
alter table 表名 change 旧字段名称 新的字段名称和描述;
示例如下:
mysql> alter table tb_users change salary salary double(8,2);
修改前:
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | 1 | |
| birth | date | YES | | NULL | |
| salary | double(10,2) | YES | | NULL | |
+--------+--------------+------+-----+---------+----------------+
修改后:
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | 1 | |
| birth | date | YES | | NULL | |
| salary | double(8,2) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
alter table 表名 modify 字段名称 新字段描述;
示例如下:
mysql> alter table tb_users modify name varchar(30);
修改前:
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | 1 | |
| birth | date | YES | | NULL | |
| salary | double(8,2) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
修改后:
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | YES | | NULL | |
| sex | tinyint(1) | YES | | 1 | |
| birth | date | YES | | NULL | |
| salary | double(8,2) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
alter table <表名> add <新字段名><数据类型>[约束条件];
给表中添加数据
insert into 表名称 value(字段值1,字段值2,字段值3...);
示例如下:
mysql> insert into tb_users value(1,'张三',1,'2022-10-01',999.99);
添加后:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
+----+------+------+------------+--------+
insert into 表名称(字段名1,字段名2,字段名3...) values(字段值1,字段值2,字段值3...);
示例如下:
mysql> insert into tb_users(name,salary) values('李四',888.88);
结果如下:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 李四 | 1 | NULL | 888.88 |
+----+------+------+------------+--------+
修改表中的数据
update 表名称 set 字段名=字段值 where 条件;
示例如下:
mysql> update tb_users set salary=777.77 where id=2;
修改前:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 李四 | 1 | NULL | 888.88 |
+----+------+------+------------+--------+
修改后:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 李四 | 1 | NULL | 777.77 |
+----+------+------+------------+--------+
update 表名称 set 字段名1=字段值1,字段名2=字段值2,字段名3=字段值3... where 条件;
示例如下:
mysql> update tb_users set name='王五',birth='2022-02-02',salary=888.88 where id=2;
修改前:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 李四 | 1 | NULL | 777.77 |
+----+------+------+------------+--------+
修改后:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 王五 | 1 | 2022-02-02 | 888.88 |
+----+------+------+------------+--------+
删除表中的某一行数据
delete from 表名 where 条件;
示例如下:
mysql> delete from tb_users where id=2;
删除前:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 2 | 王五 | 1 | 2022-02-02 | 888.88 |
+----+------+------+------------+--------+
删除后:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
+----+------+------+------------+--------+
查询表中的数据
- 查询表中的所有数据
select * from 表名称;
示例如下:
mysql> select * from tb_users;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 3 | 李四 | 1 | 2022-02-02 | 888.88 |
| 4 | 王五 | 1 | 2022-01-01 | 777.77 |
+----+------+------+------------+--------+
- 查询指定字段名称的数据
select 字段名1,字段名2,字段名3... from 表名称;
示例如下:
mysql> select name,birth,salary from tb_users;
+------+------------+--------+
| name | birth | salary |
+------+------------+--------+
| 张三 | 2022-10-01 | 999.99 |
| 李四 | 2022-02-02 | 888.88 |
| 王五 | 2022-01-01 | 777.77 |
+------+------------+--------+
mysql> select name from tb_users;
+------+
| name |
+------+
| 张三 |
| 李四 |
| 王五 |
+------+
- 查询指定字段名且符合条件的所有数据
select * from 表名称 where 条件;
示例如下:
查询工资再800到1000的表中所有的信息:
mysql> select * from tb_users where salary between 800 and 1000;
+----+------+------+------------+--------+
| id | name | sex | birth | salary |
+----+------+------+------------+--------+
| 1 | 张三 | 1 | 2022-10-01 | 999.99 |
| 3 | 李四 | 1 | 2022-02-02 | 888.88 |
+----+------+------+------------+--------+