欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-03 22:26:25
...

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 |
+--------+----------+----------+
相关标签: MySQL