標籤:賦值 rename modify 結束 lock sql語言 約束 update hang
增、刪、改、查
庫 DATABASE
1,建立資料庫【增】
create database dbname charset utf8;#建立 資料庫 庫名 設定編碼 UTF8
2,查詢庫【查】
show create database dbname;#查詢資料庫的 建立資訊 show databases;#列出所有存在的資料庫名
3,改資料庫【改】
alter database db1 charset gbk;#更改 資料庫 名 編碼格式 GBK#更改資料庫名為db1的資料庫編碼為gbk。
4,刪除資料庫【刪】
drop database db1;#刪 資料庫 名
表 TABLE
切換庫: use DataBaseName;( 庫等同於檔案夾,切換庫就如同切換檔案夾 )
查看當前庫: select database();(查看當前所在的庫名,就相當於查看當前檔案夾名)
表的操作就是在庫(檔案夾)內部操作,每一個表就相當於是庫中的檔案,表名就是檔案名稱,表內容就是檔案內容。建立的表會產生兩個檔案,一個是*.frm 另一個是 *.ibd。
1,建立表【增】
#文法形式create table 表名(欄位名1 類型[(寬度) 約束條件],欄位名2 類型[(寬度) 約束條件],欄位名3 類型[(寬度) 約束條件]);#欄位間用‘,‘逗號分開,最後一個不要有‘,‘逗號。#語句樣式create table t1(id int,name char);#建立 表 表名 (列名 屬性)
2,查詢表【查】
show create table t1;#查詢 已建立 表的屬性資訊 “\G”使用後會格式化顯示。desc t1;#與上一條一樣,查詢已建立表的屬性資訊。show tables;#查詢當前庫中所有表的名字。
3,修改表結構【改】
#修改表名alter table t1 rename newt1#修改 表 表名 改名 新表名#增加欄位alter table t1 add remarks char(10);#修改 表 表名 增加 欄位名 欄位類型alter table t1 add remarks char(10), add remarks2 char(11);#註:添加多個欄位用‘,‘逗號分隔,‘;‘分號結束,但都需要 ADD 欄位名 資料類型 格式。alter table t1 add newfield int first;#修改 表 表名 增加 欄位名 欄位類型 添加最前面#註:first 表示將該條欄位添加到表的最前面。 alter table t1 add newfield1 int after name;#修改 表 表名 增加 欄位名 欄位類型 在...後面 欄位名#註:after + 欄位名 意思是將新的欄位名填加到某欄位名之後。 #刪除欄位alter table t1 drop newfield1;#修改 表 表名 丟掉 欄位名#修改欄位 alter table t1 modify name char(10);#修改 表 表名 屬性 列名 屬性值alter table t1 change name Name char(10);#修改 表 表名 更改 列名(舊) 列名(新) 屬性值
4,刪除表【刪】
drop table t1;#刪 表 表名
複製表
1. 先建立一個空庫 : create database db3 charset utf8;2. 使用新庫: use db3;3. 【方法一】複製目標庫表中的欄位: create table t1 select host,user from mysql.user; 建立 表 表名 尋找 欄位名 從 目標庫.目標表;#註:複製過後表的結構屬性和表內欄位資料一同都拷貝過來了。如果只想拷貝表結構,可以使用where條件或讓where後的條件式不成立,這樣就只拷貝表結構了。#例:create table t1 select host,user from mysql.user where 1>5; #【方法二】複製表結構: create table t1 like mysql.user; #建立 表 表名 像 目標庫.目標表#註:只拷貝表結構,不含欄位內容
記錄 Record
1,添加記錄【增】
insert into t1(id,name) value (id,name);#插入 到 表名(列名) 值 (列名)#into可以不寫,但建議寫上,使語句結構完整易讀,另外就算是一個列名也必須加括弧。例:t1(name) value (name)insert into t1 value(id,name),(id,name);insert into t1(name) value (name),(name);#插入 到 t1 值為(列名),如果指定了表中的某列,那麼值也要按指定的格式賦值,如二例所示。
2,查表記錄【查】
select id,name from t1;#查詢 列名 從 表名select id,name from db1.t1;#查詢 列名 從 資料庫名.表名select * from t1;#查詢 所有列 從 表名
3,改表資訊【改】
update db1.t1 set name=‘sly‘;#更新 資料庫名.表名 設定 列名=新值#將資料庫db1中的t1表中name列內容改為‘sly‘。update t1 set name=‘sly‘ where id=2;#更新 表名 設定 列名=新值 條件 條件值#更新 t1表中的name列的內容改為‘sly,條件為id為2的記錄。
4,刪除記錄【刪】
delete from t1;#刪除 從 表名#刪除t1表中的所有記錄。delete from t1 where id=2;#刪除 從 表名 條件 條件值
SQL語句的基本概念
SQL語言主要用於存取資料、查詢資料、更新資料和管理關聯性資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型:
1、DDL語句 資料庫定義語言: 資料庫、表、視圖、索引、預存程序,例如CREATE DROP ALTER
2、DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT
3、DCL語句 資料庫控制語言: 例如控制使用者的存取權限GRANT、REVOKE
庫的命名規則
可以由字母、數字、底線、@、#、$
區分大小寫
唯一性
不能使用關鍵字,如create select
不能單獨使用數字
最長128位
使用help + 命令 可以查看SQL語句的用法.
表
表的類型 就是 儲存引擎
一、查看MySQL支援的儲存引擎
#命令show engines;
註:MySQL支援多種儲存引擎,是需要關注innoDB,MySQL的預設引擎。
二、指定表類型(儲存引擎)
#例:create table t1(id int) engines=innoDB;
innoDB在庫中是兩張表。
MySQL 基礎文法結構