终端操作MySQL数据库的指令,包括增删改查及各种键约束

localhost服务器可以建立数据库,数据库可以放很多数据表。
mySQL是关系型数据库,使用的是SQL语言。

1.终端操作必备指令

登录服务器

mysql -uroot -padmin

创建数据库

create database test;//(test为数据库的名字)

查看数据库

show databases;(加分号)

要对数据库或者数据表进行操作,首先要选中一个数据库

use jdbctest

显示所有数据表

show tables;

创建数据表

mysql> CREATE TABLE users(
    -> name VARCHAR(20),
    -> birth DATE,
    -> sex CHAR(1));
Query OK, 0 rows affected (0.04 sec)

查看数据表的结构,两种方法

mysql> describe users;
mysql> desc users;

查询语句

select * from students;//也可以使用select * from students where id =1;("id" 和自己数据表的键名要一致,除了等于也可以用大于小于等选定范围)

向数据表中添加数据记录

mysql> INSERT INTO users
    -> VALUES('qumengyao','1996-03-18','g');

修改某条数据的值

mysql> UPDATE users SET money ='176.90'WHERE name='qumengyao';

删除一条数据

mysql> delete from users where name='曲梦瑶';

删除一列数据

mysql> alter table userInfo5 drop column name;//删除名为name 的一列数据

删除数据库

mysql> drop database RUNOOB;

删除数据表

DROP TABLE table_name ;

退出数据库服务器

exit;
2.DECIMAL(M,D)的使用——金钱等高精度场景

DECIMAL(M,D):M表示数据存储的最长位数,D表示小数点后的位数
向原来的数据表中插入一列数据+DECIMAL(M,D)的使用:适合用于金钱等需要保持较高精度的地方

mysql> ALTER TABLE users
    -> ADD money DECIMAL(6,2)//设置最长位数是6,小数的长度是2
    -> ;

修改新加数据列的值

mysql> UPDATE users SET money ='176.90'WHERE name='qumengyao';
mysql> UPDATE users SET money ='1767.90'WHERE name='曲梦瑶';//如果超过了 DECIMAL的M值,则会报错。
mysql> select * from users;
+-----------+------------+------+---------+
| name      | birth      | sex  | money   |
+-----------+------------+------+---------+
| qumengyao | 1996-03-18 | g    |  176.90 |
| 曲梦瑶    | 1993-03-18 | g    | 1767.90 |
+-----------+------------+------+---------+
3.常用约束指令

(1)主键约束
主键不重复且不能为空,主键用来唯一的确定一条记录

mysql> alter table users add primary key(id);//把一个键设为主键约束

如果设定两个主键,作为联合主键,只要各主键值加起来不重复并且任一主键值不为空。
删除主键:

alter table table_name drop primary key;

修改主键约束

alter table table_name modify id int primary key;

(2)自增约束
要把某一列设置为自增约束,首先要保证是一个键。
把主键改为自增约束

mysql> alter table users change id id int AUTO_INCREMENT;

(3)唯一约束
约束修饰的字段的值不可以重复
两种方式在将原来的键设置为唯一约束:

alter table table_name add unique(name);
alter table table_name modify name varchar(20) unique;

创建表的时候设置为unique,两种方式:

name VARCHAR(20) unique
name VARCHAR(20),
unique(name, , , )//可以设定多个键为唯一约束,键的值组合在一起不重复就可以

删除唯一约束

alter table table_name drop index name;

(4)非空约束:
修饰的字段不能为NULL
创建的时候设定:

name varchar(20) not null

(5)默认约束
插入字段值的时候,如果没有传值,就会使用默认值

name varchar(20) default '123456';//这里不加引号也可以

修改默认值,使用modify

mysql> alter table userInfo5 modify password varchar(20) default '123456';

(6)外键约束
涉及到两个表:父表和子表
子表中的某个键关联父表中的某个键,这个键称为子表的外键,要保证:
(1)两个键数据类型相同;
(2)在子表中,设定外键的值时,要保证,外键的值在父表中是存在的。
(3)如果父表中的记录被子表使用,是不可以被删除的。

举例:

mysql> create table classes(
    -> id int primary key auto_increment,
    -> teacher varchar(20) not null);

mysql> create table class_1(
    -> stu_id int primary key auto_increment,
    -> stu_name varchar(20) not null,
    -> unique(stu_name));
 //为class_1表添加外键约束
mysql> alter table class_1 add class_i int;
mysql> alter table class_1 add foreign key(class_i) references classes(id);

向classes中insert数据

mysql> select * from classes;
+----+---------+
| id | teacher |
+----+---------+
|  1 | zhao    |
|  2 | qian    |
|  3 | sun     |
|  4 | li      |
+----+---------+

向class_1插入数据

mysql> insert into class_1 (stu_name,class_is) values ('xiaowang',1);
mysql> insert into class_1 (stu_name,class_is) values ('xiaoming',1);
mysql> insert into class_1 (stu_name,class_is) values ('xiaozhao',1);
mysql> insert into class_1 (stu_name,class_is) values ('xiaohua',1);

mysql> select * from class_1;
+--------+----------+----------+
| stu_id | stu_name | class_is |
+--------+----------+----------+
|      1 | xiaowang |        1 |
|      2 | xiaoming |        1 |
|      3 | xiaozhao |        1 |
|      4 | xiaohua  |        1 |
+--------+----------+----------+
原创文章 64 获赞 27 访问量 9418

猜你喜欢

转载自blog.csdn.net/weixin_44893585/article/details/104610066