show engines; --->能夠顯示當前數據庫 所支持的全部存儲引擎mysql
名稱 是否支持 簡要描述 是否支持事務 是否支持分佈式事務 是否支持保存點sql
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+數據庫
| Engine | Support | Comment | Transactions | XA | Savepoints |分佈式
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ui
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |spa
(默認)排序
show table status like '表名' \G --->查看一個表的屬性信息索引
建立表:事務
一、直接定義一張空表ci
create table [if not extsts] 表名 (表屬性) ,(表選項:字段名稱,字段屬性,約束/索引)
設置主鍵方法:
create table sun1 (id int not null auto_increment primary key ,name char(20)not null ,age tinyint not null );
create table sun2 (id int not null auto_increment ,name char(20)not null ,age tinyint not null,primary key(id,name)); :id和name聯合起來成爲主鍵
設置惟一鍵(名稱字段中不容許出現重複)
create table sun2 (id int not null auto_increment ,name char(20)not null ,age tinyint not null,primary key(id,name) ,unique key (name)); :name這個字段中的數據不容許出現重複
create table sun2 (id int not null auto_increment ,name char(20)not null ,age tinyint not null,primary key(id,name) ,unique key (name), index(age)); :設置age 爲索引
設置表的存儲引擎
create table 表名 (一系列屬性 )engine = 存儲引擎名
設置最多存儲多少行
create table 表名 (一系列屬性 ) max-rows=多少行
當使用AUTOINCREMENT列建立序列時,在INSERT語句中不使用字段名將致使MySQL自動產生序列的下一個序號。這個序號做爲表的主鍵。
insert into kk (ke) values ('huama'),('pixie'),('kuihua');
關鍵字 表 字段 關鍵字 添加內容
鍵也稱做約束,可用於索引,屬於特殊索引(有特殊限定);B+tree
show indexes from 表名 ; --->查看指定表的索引
那個表上 是否是 第幾個 索引在哪 排序 索引
的索引 非惟一鍵 鍵名稱 索引 個字段上 規則 類型
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| kk | 0 | PRIMARY | 1 | name | A | 9 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
二、從其餘表中查詢出數據並以之建立新表
仿照一張表建立一張新表(有數據)
create table xinwen select * from kk where name >= 2;
建立表 表名 查看 舊錶 表名 關鍵字 條件
三、以其餘表爲模板,建立一個新表
仿照一張表建立一張新表(空表)
create table 新建表名 like 仿照代表;
四、直接修改表引擎
alter table 表名 engine=存儲引擎名(MyIASM|lnnoDB)
修改表:
alter table
添加、修改、刪除字段 修改表屬性
添加、刪除、修改索引 改表名
給表中一個字段添加一個惟一鍵(前提是表中沒有重複的數據)
alter table 表名 add unique key (字段名);
給庫中的表更名字
alter table 舊名字 rename to 新名字;
或者:rename table 舊名字 to 新名字;
多表查詢(將兩張表聯合起來查詢相同的結果):
select name , keming from xuehao,kehao where xuehao.cid=kehao.cid;
查詢 表A字段 表B字段 表名 表名 條件 兩張表的cid相同的數據
注意,外鍵約束只可以用在支持事務的存儲引擎上
建立與刪除索引
建立索引: create index 索引名稱 on 表名 (字段) ;
刪除索引:drop index 索引名 on 表名;
insert into
insert into 表名 (字段,字段) value ('字符串',數字),('字符串',數字);
insert into 表名 set 字段=數值(字符串加引號),字段=數值,字段=數值;
select * from kebiao order by id desc limit 1;
表名 排序 字段 倒敘 只顯示1個
當咱們在表中刪除一個數據(id 10),當咱們再建立這個數據時,id不會再是10,用一條命令查看自動生成的id,(select last_insert_id();)mysql會接着這裏面的數字繼續排下去,除非把這裏面的數值清零。
在表中篩選出的數據插入到另外一張表中(兩種表的字段必須相同)
insert into kebiao (name) select name from xuesheng where id>2;
插入到 表名 字段 在 字段 表名 篩選 條件
在表中篩選出的數據插入到另外一張表中,若這張表中數據重複則替換
replace into kebiao (name) select name from xuesheng where id>2;
delete
mysql內置選項:當你使用delete語句或者update語句時,沒有使用where條件(字句),它不會讓你執行!
注意:當你清空整張表時,在插入數據,數據的id號也會接着最後一個被清空數據的id號繼續往下排
因此,想要從零開始,必須清空(select last_insert_id();)中的數值
truncate 表名; --->清空表,而且重置計數器(select last_insert_id();)相似於id。。。