您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql入門基本語句,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下mysql入門基本語句吧。
MYSQL入門基本語句
登錄鏈接MYSQL
mysql -u(用戶名) -p(密碼) -h(主機(jī)名)
DDL語句 數(shù)據(jù)庫定義語言 數(shù)據(jù)庫,表,視圖,索引,存儲過程,例如CREATE DROP ALTER
create database 數(shù)據(jù)庫名; #創(chuàng)建數(shù)據(jù)庫,大寫也是可以
show databases; #查看數(shù)據(jù)庫
select database(); #顯示當(dāng)前所在庫
use 數(shù)據(jù)庫名; #具體使用哪一個數(shù)據(jù)庫
drop databas 數(shù)據(jù)庫名; #刪除數(shù)據(jù)庫
help drop 查看命令幫
數(shù)值類型:
整數(shù)類型 TINYINT SMALLTNT MEDIUMINT INT BIGINT
浮點(diǎn)數(shù)類型 FLOAT DOUBLE
定點(diǎn)數(shù)類型 DEC
位類型 BIT
字符串類型:
CHAR系列 CHAR VARCHAR
TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT
BLOB系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB
BINARY系列 BINARY VARBINARY
枚舉類型: ENUM
集合類型 SET
時間和日期類型: DATE TIME DATETIME TIMESTAMP YEA
PRIMARY KEY (PK) #主鍵
FOREIGN KEY (FK) #外鍵
NOT NULL #標(biāo)識該字段不能為空
UNIQUE KEY (UK) #標(biāo)識該字段是唯一的,可以為空,一個表中可以多個UNIQUE KEY
AUTO_INCREMENT #標(biāo)識該字段的值自動增長(整數(shù)類型,而且為主鍵)
DEFAULT #為該字段設(shè)置默認(rèn)值
UNSIGNED #無符號,正數(shù)
ZEROFILL #使用0填充,例如00000001
desc table,show create table; #查看
create table 表名(
字段名1 類型 ((寬度)約束條件),
字段名2 類型 ((寬度)約束條件),
字段名3 類型 ((寬度)約束條件),
); #創(chuàng)建一個
default '值' #默認(rèn)值
not null #不為空
enum('m','f') #枚舉類型
age int unsigned #不含符號的整型
set('disc','boos','music') #設(shè)置一個合集的值
primary key auto_increment; #主鍵為自增
primary key(ip,service); #定義一個復(fù)合主鍵
primary key(name); #定義一個外
insert into 表名 values(3,'alice','f',18); 插入數(shù)值,可以是多
增加字段
ALTER TABLE 表名 #增加字段
ADD 字段名 數(shù)據(jù)類型[完整性約束條件...];
ALTER TABLE 表名
ADD 字段名 數(shù)據(jù)類型[完整性約束條件...] FIRST;
ALTER TABLE 表名
ADD 字段名 數(shù)據(jù)類型[完整性約束條件...] AFTER 字段名;
刪除字段
ALTER TABLE 表名 DROP 字段名
修改字段
ALTER TABLE 表名
MODIFY 字段名 數(shù)據(jù)類型 [完整性約束條件....];
ALTER TABLE 表名
CHANGE 舊字段名 新字段名 新數(shù)據(jù)類型 [完整性約束條件...];
ALTER TABLE 表名
CHANGE 舊字段名 新字段名 新數(shù)據(jù)類型 [完整性約束條件...];
刪除主鍵
先刪除自增屬性,再刪除主鍵屬性,不然會報錯
MySQL [school]> alter table t1 modify id int not null; 先刪除自增屬性
MySQL [school]> alter table t1 drop primary key; 在刪除主鍵屬性
alter table t1 drop 姓名
復(fù)制表
復(fù)制結(jié)構(gòu)+記錄(key不會復(fù)制:主鍵,外鍵和索引)
create table t1_new select * from t1; 創(chuàng)建一個新表復(fù)制原有表的結(jié)構(gòu)跟數(shù)據(jù)
create table t1_new3 select * from t1 where 1=5; 復(fù)制表結(jié)構(gòu),不帶數(shù)據(jù)
MySQL [school]> create table t4 like t1; #復(fù)制表結(jié)構(gòu),包括ke
刪除表 DROP TABLE 表名; #刪除表名
drop table 表名;
####查出完整數(shù)據(jù)###
insert into 表名 values (值1,值2,值3...
###指定字段插入數(shù)據(jù)###
insert into 表名(字段2,字段3...) values (值2,值3...
###插入多條記錄###
insert int 表名 values
(值1,值2,值3...),
(值1,值2,值3...),
(值1,值2,值3...)
###插入查詢結(jié)果###
insert into 表1(字段1,字段2,...)
select(字段1,字段2) from 表2
where ...
###更新數(shù)據(jù)UPDATE###
update 表名 set
字段1 = 值1,
字段2 = 值2,
where ...
###刪除數(shù)據(jù)DELETE###
delete from 表名
where ...; #一定要加條件不然全部刪除
MYSQL事務(wù)的處
begin
start transaction; #手動開啟事
insert into t_user(name) values('pp');
commit ; #commit之后即可改變底層數(shù)據(jù)庫數(shù)據(jù)
roollback #回滾
commit; #提交事
1. 事物A和事物B之間具有一定的隔離性
2. 隔離性有隔離級別(4個)
? 讀未提交:read uncommitted
? 讀已提交:read committed
? 可重復(fù)讀:repeatable read
? 串行化:serializabl
默認(rèn)自動提交事務(wù)
set autocommit=0 禁止自動提交
set autocommit=1 開啟自動提交
####設(shè)置外鍵約束 FOREIGN key
父表 company.demofu
mysql> create employees(
-> name varchar(50) not null,
-> mail varchar(20),
-> primary key(name))
子表company.payroll
mysql> create table demozi(
id int auto_increment,
name varchar(50) not null,
payroll float(8,2) not null,
primary key(id),
foreign key(name) references demofu(name) on update
cascade on delete cascade); #設(shè)置外鍵同步附表的name字
插入數(shù)值
mysql> insert into demofu values
-> ('圓圓','yuanyuan@163.com'),
-> ('大大','dada@126.com')
mysql> insert into demozi(name,payroll) values ('趙趙',1000);
錯誤1452(23000):無法添加或更新子行:外鍵約束失?。ā皊tudent”,“demozi”,constraint“demozi_ibfk_1”
外鍵(“name”)在更新級聯(lián)的DELETE CASCADE上引用“demofu”(“name”)
解釋:
設(shè)置外鍵后,子表會同步外表里面的字段數(shù)據(jù),如果附表沒有該數(shù)據(jù),則
無法添
mysql> update demofu set name='亞慶' where name='圓圓';
mysql> select * from demozi;
+----+--------+---------+
| id | name | payroll | #得出結(jié)論,子表的外鍵與附表的字段
+----+--------+---------+ 保持一致
| 1 | 亞慶 | 8000.00 |
+----+--------+---------
mysql> delete from demofu where name='亞慶'; #父表數(shù)據(jù)刪除子表也會刪
mysql> select * from demozi;
Empty set (0.00 sec)
看完以上關(guān)于mysql入門基本語句,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。