以下操作都是在cmd中執行
-
登陸數據庫服務器
# 登陸數據庫服務器 mysql -uroot –p+password # 退出數據庫服務器(三者任選一) quit \q exit
-
新建數據庫
/*新建數據庫*/ create database 數據庫名; /*查詢數據庫服務器中有哪些數據庫*/ show databases;
-
選擇使用數據庫並查看數據庫下的所有表
/*選擇數據庫*/ use 數據庫名; /*查看數據庫下的所有表*/ show tables;
-
新建表和刪除表
/*新建表*/ create TABLE pet( name VARCHAR(20), owner VARCHAR(20), specise VARCHAR(20), sex CHAR(1), brith DATE, death DATE ); /*刪除表*/ drop table pet;
var()與varchar()的區別在於var()是定常的,哪怕存儲的字符串沒有達到"()“中數字的上限,var()依然會佔用空格來填充空間.而varchar()則是不定長的,沒有達到”()"中的上限則會自動去掉後面的空格
-
查看數據表的架構
describe score;
Field: 字段的名稱
Type: 字段的類型,可以有int var varchar
Key : 是否是關鍵字 如可以定義爲: primary key 或者 unique key …
Default: : 若是該字段沒有主動設置值的時候,該字段的默認值是NULL
-
插入數據和刪除數據
/*插入全部數據*/ Insert into score Values('104', '3-245', '88'); /*插入部分數據,未設置的寫入默認值*/ Insert into score(s_no,c_no) Values('108','3-245');
/*刪除數據行*/ delete from score where s_no='108'; /*添加字段*/ alter table score add(a varchar(11)); /*刪除字段*/ alter table score drop a;
-
查看已有表的建表命名
show create table score;
-
創建視圖
create view test as select s_no from score;
-
建表約束
-
主鍵約束:唯一確定一張表中的一條記錄,增加主鍵約束之後,字段不重複而且不爲空
/*建表*/ create table user( /*設置id爲主鍵*/ id int PRIMARY KEY, name VARCHAR(20) ); /*插入數據*/ INSERT INTO user VALUES (1,'張三'); /*刪除已添加的主鍵約束*/ alter table user drop primary key; /*在創建好的表中添加主鍵約束*/ alter table user add primary key(id);
-
複合主鍵:所有的字段都不是相同的情況下可以允許其中的字段重複
CREATE TABLE user2( id INT, name VARCHAR(20), password VARCHAR(20), /*設置(id,name)爲複合主鍵*/ PRIMARY key(id,name) ); INSERT INTO user2 VALUES (1,'老王','123456'); INSERT INTO user2 VALUES (2,'老王','123456');
-
自增約束:
CREATE TABLE user3( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) ); INSERT INTO user3(name) VALUES('張三'); INSERT INTO user3(name) VALUES('李四');
-
唯一約束:修飾的字段的值不能重複
CREATE TABLE user5( id INT unique, name VARCHAR(20) ); /*刪除已添加的唯一約束*/ alter table user drop index id;
-
非空約束:該項不能爲空
CREATE TABLE user4( id INT unique not null, name VARCHAR(20) );
-
默認約束:該字段存在默認值
CREATE TABLE user6( id INT primary key, name VARCHAR(20) default 'none' );
-
外鍵約束:涉及到兩個表:父表、子表
/*父表*/ create table classes( id int primary key, name varchar(10) ); /*子表*/ create table classes( id int primary key, name varchar(10), class_id int, foreign key(class_id) references classes(id) );
父表中沒有的數據值,在子表中是不能被使用的
若父表的記錄被引用,則不能刪除主表中的該記錄
-
檢查約束:檢查字段的值是否爲可選範圍
create table tblteacher{ teaID int not null primary key comment '學號', teaName nvarchar(10) not null comment '姓名', teaSex nchar(1) not null comment '性別', teaTelphone char(11) comment '電話', constraint ck_tablteacher_teaSex check(teaSex in('男','女')) };
-