mysql设置约束l命令_2、MYSQL 基本数据库命令及约束
【注】sql語句注意不要忘了后面的? ?“? ; ”,表示結(jié)束符
1、如何登陸數(shù)據(jù)庫服務(wù)器
C:\Users\zhg>mysql -uroot -p
Enter password: ***********
2、如何查詢數(shù)據(jù)庫服務(wù)器中所有的數(shù)據(jù)庫
mysql> show databases;
3、如何選中一個(gè)數(shù)據(jù)庫
use +數(shù)據(jù)庫名;
4、在選中的基礎(chǔ)上查看數(shù)據(jù)庫中的數(shù)據(jù)表
show tables;
5、在上述基礎(chǔ)上查看一個(gè)表的字段
select * from + 表名;
6、退出數(shù)據(jù)庫服務(wù)器命令
exit;
7、如何在數(shù)據(jù)庫服務(wù)器中創(chuàng)建數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)表(這里創(chuàng)建test數(shù)據(jù)庫,創(chuàng)建pet數(shù)據(jù)表)
>create database test;? ? //創(chuàng)建數(shù)據(jù)庫
>show databases;? ? //查看數(shù)據(jù)庫是否創(chuàng)建成功
>use test;? ? //選中所要操作的數(shù)據(jù)庫
>CREATE VARCHAR pet(
name VARCHAR(20),
ower VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE);? ? ? ? //創(chuàng)建數(shù)據(jù)表
>show tables;? ? //查看數(shù)據(jù)表是否創(chuàng)建成功
>describe pet;? ? ? ?//查看數(shù)據(jù)表的具體結(jié)構(gòu)
>drop table pet;? ? //刪除表
8、在表中添加記錄
>INSERT INTO pet
VALUES('kiki','zhang','hamster','f','2020-01-01',NULL)? ? //對(duì)應(yīng)上述創(chuàng)建的表的結(jié)構(gòu)來添加記錄值
9、查看表中的記錄
>select * from pet;
10、mysql常用數(shù)據(jù)類型
(1) 數(shù)值
(2)日期/時(shí)間
(3)字符串(字符)類型
【注】上述數(shù)據(jù)類型的選擇:
日期/時(shí)間:主要看格式
數(shù)值類型、字符串類型:主要看范圍,大小
11、刪除數(shù)據(jù)(這里刪除name為旺旺的記錄)
>delete from pet where name='旺旺'
12、修改數(shù)據(jù)(將owner 為zhang 的記錄的name改為旺旺)
>update pet set name='旺旺' where owner='zhang';
【總結(jié)】
SQL:Structure Query Language? ? 結(jié)構(gòu)化查詢語言
DDL:數(shù)據(jù)定義語言:定義數(shù)據(jù)庫、數(shù)據(jù)表的結(jié)構(gòu)(create(創(chuàng)建)、drop(刪除)、alter(修改))
DML:數(shù)據(jù)操縱語言:主要是用來操作數(shù)據(jù)(insert(插入)、update(修改)、delete(刪除))
DCL:數(shù)據(jù)控制語言:定義訪問權(quán)限,取消訪問權(quán)限,安全設(shè)置(grant)
DQL:數(shù)據(jù)查詢語言:select(查詢) from 子句,where 子句
13、mysql建表約束
(1)主鍵約束
【功能】它能夠唯一確定表中的一條記錄,也就是我們通過給某個(gè)字段添加一條約束,就可以使得該字段不重復(fù)也不為空。
【語句1】 創(chuàng)建一個(gè)新表名為user,給id添加主鍵約束,實(shí)現(xiàn)如下:
>????create table user(
id int primary key,
name varchar (20));
添加記錄:
>insert into user values (1,'張三');
>insert into user values (2,'李四');
【注】在這里id為主鍵,所以id只能添加唯一的數(shù)據(jù)(上述為1,2若同時(shí)添加為1,那么就會(huì)報(bào)錯(cuò))
【語句2】聯(lián)合主鍵,創(chuàng)建user2,給id與name同時(shí)添加主鍵,只要兩個(gè)中有一個(gè)不同就算唯一
>??create table user2(
id int,
name varchar(20),
primary key(id,name));
添加記錄:
>insert into user2 value (1,'張三');
>insert into user2 value (1,'張三');
【注】這里為聯(lián)合主鍵,雖然id一樣但是name也叫做唯一
【拓展】在創(chuàng)建表的時(shí)候,忘了添加主鍵約束:
——如何添加?add
【語句】創(chuàng)建表user4,后期再添加主鍵
> create table user4(
-> id int ,
-> name varchar(20));
//添加主鍵
>alter table user4 add primary key(id);
——如何刪除 drop
【語句】
>alter table user4 drop primary key;
——使用modify修改字段,添加約束
【語句】
>alter table user4 modify id int primary key;
(2)自增約束?auto_increment
【語句】創(chuàng)建表user3,同時(shí)給id添加主鍵約束與自增約束,在添加記錄時(shí),只需要添加name記錄,id就會(huì)實(shí)現(xiàn)自動(dòng)生成并隨著name 的添加而實(shí)現(xiàn)自增
>create table user3(
id int primary key auto_increment,
name varchar(20));
>insert into user3 (name) values('王五');
>insert into user3 (name) values('王五');
(3)唯一約束 unique
【語句】創(chuàng)建表user5,同時(shí)給name添加唯一約束
>create table user5(
-> id int,
-> name varchar(20));
>alter table user5 add unique(name);
//第二種方式
>create table user6(
-> id int,
-> name varchar(20),
-> unique(name));
//第三種方式
> create table user7(
-> id int,
-> name varchar(20) unique);
//聯(lián)合方式(與聯(lián)合主鍵一樣,兩者只要有一個(gè)不同就是唯一)
>create table user8(
-> id int,
-> name varchar(20),
-> unique(id,name));
——?jiǎng)h除user7中的唯一約束
>alter table user7 drop index name;
—— 修改唯一約束
> alter table user7 modify name varchar(20) unique;
對(duì)唯一性的驗(yàn)證可自行驗(yàn)證哦
(4)非空約束?not null
【語句】創(chuàng)建user9,添加非空約束
>create table user9(
-> id int,
-> name varchar(20) not null);
【驗(yàn)證】
> insert into user9 (id) value (1);? ? ? ? ? ? 只添加id的話,會(huì)報(bào)錯(cuò),因?yàn)閚ame不能非空
>insert into user9 value (1,'zhang');? ? ? ? ? ? 成功
——后期添加
>alter table user10 modify name varchar(20) not null;
——?jiǎng)h除
>alter table user10 modify name varchar(20) null;
(5)默認(rèn)約束
【語句】創(chuàng)建user10
> create table user10 (
-> id int,
-> name varchar(20),
-> age int default 10);
或者后期再添加
——?jiǎng)h除
>alter table user10 alter age drop default;
——添加
>alter table user10 alter age set default 5;
(6)外鍵約束
【注】涉及兩個(gè)表之間的關(guān)聯(lián),主表--副表,父表--子表
【語句】創(chuàng)建兩個(gè)表classes,students
——classes表
> create table classes(
-> id int primary key,
-> name varchar(20));
——students表
> create table students(
-> id int,
-> name varchar(20),
-> class_id int,
-> foreign key(class_id) references classes(id));
添加記錄:
——添加班級(jí)
> insert into classes value(1,'一班');
> insert into classes value(2,'二班');
> insert into classes value(3,'三班');
——添加學(xué)生
>insert into students value(1,'張三',1);
>insert into students value(1,'張三',2);
>insert into students value(1,'張三',3);
所謂外鍵約束:
1、主表(父表)中沒有的數(shù)據(jù)在副表(子表)中是不可以使用的(這里對(duì)于學(xué)生的添加時(shí),所選班級(jí)會(huì)有限制,只能是1,2,3)
2、主表中的記錄被副表引用時(shí)是不可以被刪除的(這里的班級(jí)已經(jīng)都被副表引用,所以不可以刪除)
3、作為外鍵必須是唯一的字段才能做外鍵,即必須是主鍵才有資格稱為外鍵;
【總結(jié)】
添加約束
1、建表的時(shí)候就直接添加約束
2、alter .......add.......
3、alter.........modify.....
刪除約束
alter ........drop ......
【補(bǔ)充】
1、更改字段名(將con改為cno)
>alter table course change con cno varchar(20);
2、刪除字段(刪除名為cno的字段)
>alter table course drop column cno;
3、增加字段(只能默認(rèn)在后面添加字段,這里添加的是cno)
>alter table course add cno varchar(20);
4、調(diào)整字段的相對(duì)位置
(1)將cno放到tno前面
>alter table course modify tno varchar(20) after cno;
(2)將tno放到整個(gè)字段的最前面
>alter table course modify tno varchar(20) first;
關(guān)注個(gè)人公眾號(hào),有福利哦……
總結(jié)
以上是生活随笔為你收集整理的mysql设置约束l命令_2、MYSQL 基本数据库命令及约束的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原神神无冢雷灵宝箱在哪?
- 下一篇: mysql 数据表 时间自动_MySQL