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