語法:mysql -h ip地 -u用戶名 -p密碼html
例:mysql -h 59.34.56.11 -u root -p rootmysql
語法:SHOW [FULL] TABLES [{FROM|IN} 數據庫名] [LIKE 規則 | WHERE 條件];sql
full:以完整格式顯示錶的名稱和類型數據庫
例:show full tables from neusoft1 where tables_in_neusoft1 = 'student1';spa
show tables like '%s%';日誌
語法:DESC 表面 [列名];htm
DESC:DESCRIBE對象
例:DESC student1 stuno;blog
語法:SHOW CREATE TABLE student1;ip
語法:ALTER TABLE 表名 ADD ([column]列名1 類型1,列名2 類型2,......,列名n 類型n);
在某一列的前/後添加:ALTER TABLE 表名 ADD [column] 列名 類型 [first|after] 指定列名;
first是添加爲首列,如:alter student1 add sex char(2) first;
alter student1 add (sex char(2) after stuname);
語法:alter table 表名 drop [column] 列名;
例:ALTER TABLE student DROP asid;
語法:alter 表名 modify [column] 列名 數據類型;
[column]可寫可不寫,不可一次修改多個列屬性
如修改後的長度<原定義的長度,可能形成精度損失/數據更改(如小數位數減小,數據截斷)
語法:Alter table 表名 change 原列名 新列名 數據類型;
alter table student1 change adress newadress char(10);
alter table student1 change newadress newadress varchar(20);
在修改列名的時候,也能夠修改屬性,或者只修改屬性不修改列名
語法:Alter table 原表名 rename [to] 新表名;
To可寫可不寫,沒有影響
語法格式:insert [into] 表名(列名1,列名2,…)values(值1,值2,…);
1) 當插入數據爲日期或者字符串時,須要加上單引號;
2) 列與值須要一一對應,不插入值時輸入null或’’;
3) into能夠省略,但因爲MySQL是不規範的語法格式,省略可能在後續進行數據遷移時會形成錯誤
例:CREATE TABLE emp(
empno int(4),
ename varchar(5),
job varchar(10),
mgr int(4),
hiredate date,
sal float(9,2),
comm float(9,2),
deptno int(3));
Insert into emp(empno,ename,hiredate,sal) values(7788,’TOM’,’2019-12-12’,3456);
語法:insert into 表名 (列1,列2…) values (列1值1,列2值1…), (列1值2,列2值2…) ,...;
例:insert into emp(empno.ename) values(1234,'allen'),(2345,'pirce'),(3456,'carte');
語法:insert into 表名(列1,列2,…..) select 列1,列2,….. from 表名;
例:Insert into emp(empno) select stuno from student;
語法:load data infile 文件地址 into table 表名;
例:
mysql> load data infile "I:\a.txt" into table t1; |
a、在製表符處把行分解爲列;
b、在新行處尋找行的邊界
c、不跳過任何行前綴
語法格式:Insert into 表名 set 列名1=值1, 列名1=值1,…;
insert into emp set empno=1111,ename=KOBE0,job=MANAGER,MGR=1000,HIREDATE=2019-01-01,SAL=2000,DEPTNO=10;
Replace into 表名(列1,列2) values(值1,值2);
replace into student(stuno,stuname) values(1002,'allen');
Replace into 表名(列1,列2…) values (列1值1,列2值1…), (列1值2,列2值2…) ,...;
replace into student(stuno,stuname) values(1002,'allen'), (1003,'carte');
語法格式
所有修改 |
Update 表名 set 列名1=值1, 列名2=值2,……; |
局部修改 |
Update 表名 set 列名1=值1, 列名2=值2,……where 條件; |
update student set stuno=0001;
update student set stuno=1001 where stuname='carte';
所有刪除 |
Delete from 表名; |
局部刪除 |
Delete from 表名 where 條件; |
語法格式 |
Truncate [table] 表名; →相似於所有刪除 |
Q:delete語句和truncate語句的區別?
Y:均能實現刪除表中的所有數據
N1:delete語句能夠實現帶條件的部分刪除,而truncate只能清除全部記錄
N2:truncate清除數據後,再向表中插入記錄時,自動增長的字段默認從1開始;而使用delete語句刪除記錄後,再向表中插入記錄時,自增字段的值會從(以前該字段的最大值)+1
N3:使用delete語句每刪除一行記錄,都會記錄在系統操做日誌中;而truncate語句清除數據時,不會在日誌中記錄刪除內容。若要清除表中全部的數據,truncate語句效率高於delete語句。
Create table [if not exists] 表名(
列名1 數據類型1 列屬性1,
列名2 數據類型2 列屬性3,
……
);
列屬性
1)、默認值:default 默認值
2)、註釋:commend 註釋內容
3)、自動增序:auto_increment(只對整數類型有效,且要和主鍵一塊兒使用)
4)、約束
範例:
Create table if not exists t1(
age char(3) default 23,
Sid int comment'用戶編號',
Sname varchar(10) default'無名氏'
);
約束是對錶的強制規定
數據完成性:實體完整性、域完整性、參照完整性
實體完整性:保證表中的每一行數據在表中是惟一的
域完整性:數據庫中的列必須知足某種特定的數據類型或約束。約束又分爲強制域完整性越蘇、限制格式或限制可能值得範圍。
參照完整性:在輸入/刪除記錄時,包含主關鍵字的主表 和 包含外關鍵字的外表
約束的分類:
完整性類型 |
約束類型 |
描述 |
約束對象 |
域完整性 |
Not null |
列的值不能爲空 |
列 |
Auto_increment |
列值自動增長 |
||
Default |
默認值 |
||
實體完整性 |
Primary key |
主鍵約束,表示惟一,不能爲空 |
行 |
Unique |
惟一鍵,表示惟一,可爲空 |
||
參照完整性 |
Foreign key |
外鍵約束 |
表與表之間 |
Create table if not exists t3(
age char(3) not null,
Sid int comment'用戶編號',
Sname varchar(10) default'無名氏'
);
插入值:
mysql> insert into t3(sid,sname) values(1001,'byd');
ERROR 1364 (HY000): Field 'age' doesn't have a default value
mysql> insert into t3(age,sid,sname) values(null,1001,'byd');
ERROR 1048 (23000): Column 'age' cannot be null
mysql> insert into t3(age,sid,sname) values(105,1001,'byd');
Query OK, 1 row affected (0.01 sec)
語法:alter table 表名 modify 列名 數據類型 not null;
Create table if not exists t4(
Sid int comment'用戶編號',
Sname varchar(10) default'無名氏'
);
alter table t4 modify Sid int not null comment '用戶編號';
語法:Alter table 表名 modify 列名 數據類型 null;
一個表中通常只有一個主鍵,主鍵約束不可爲空,自增序必須和主鍵一塊兒使用
Create table if not exists t6(
Sid int primary key auto_increment comment'用戶編號',
Sname varchar(10) default'無名氏',
age char(3) not null
);
mysql> insert into t6(sname,age) values('BRA',26);
Create table if not exists s6(
Sid int,
Sname varchar(10) default'無名氏',
age char(3) not null,
constraint pk_s6 primary key (Sid,Sname)
);
語法格式:alter table 表名 add constraint 約束名 primary key(列名1,列名2,…);
alter table emp add constraint pk_emp primary key (empno,ename);
alter table emp add constraint uk_emp unique key (mgr);
語法:Alter table 表名 drop primary key;
Alter table emp drop primary key;
做者:kerwin-chyl
文章連接:https:////www.cnblogs.com/kerwin-chyl
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。