資料庫和表的基本操作

2021-10-02 09:35:25 字數 4889 閱讀 4084

sql語言主要用於訪問資料、查詢資料、更新資料和管理關係資料庫系統,sql語言由ibm開發。sql語言分為3種型別:

#1、ddl語句    資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如create drop alter

#2、dml語句 資料庫操縱語言: 插入資料insert、刪除資料delete、更新資料update、查詢資料select

#3、dcl語句 資料庫控制語言: 例如控制使用者的訪問許可權grant、revoke

關閉服務端 net stop mysql

啟動服務端 net start mysql

增 create database db1 charset utf8;

查 show databases;

show create database db1;

改 alter database db1 charset gbk;

刪 drop database db1

檢視所在庫 select database();

切換庫 use db1;

增 creat table t1(id int, name char);

查 show tables;

show create table t1;

desc t1; 檢視表結構

改 alter table t1 add *** char; 新增字段

alter table t1 drop ***; 刪除字段

alter table t1 modify name char(8); 修改字段型別

alter table t1 change name name char(16); 修改原欄位名及該字段型別

刪 drop table t1;

增 insert into db1.t1(id,name) values 

(1,'xionger'),(2,'xiongda');

查 select id,name from db1.t1 查指定字段

select * from db1.t1 查所有(不推薦使用)

改 update t1 set name='dd' where id=2;

刪 delete from t1 where id=2; 刪除指定字段記錄

truncate t1; 清空表中記錄(重置整張表)

create table 表名(

欄位名1 型別[(寬度) 約束條件],

欄位名2 型別[(寬度) 約束條件],

欄位名3 型別[(寬度) 約束條件]

)

案例: create table t1(id int primary key auto_inrement, name char(32) not null, *** char(6) not null default "male");

修改表名

alter table 表名 rename 新錶名;

增加字段

alter table 表名

add 欄位名 資料型別 [完整性約束條件…],

add 欄位名 資料型別 [完整性約束條件…];

alter table 表名 add 欄位名 資料型別 [完整性約束條件…] first;

alter table 表名 add 欄位名 資料型別 [完整性約束條件…] after 欄位名;

刪除字段

alter table 表名 drop 欄位名;

修改字段

alter table 表名 modify 欄位名 資料型別 [完整性約束條件…];

alter table 表名 change 舊欄位名 新欄位名 舊資料型別 [完整性約束條件…];

alter table 表名 change 舊欄位名 新欄位名 新資料型別 [完整性約束條件…];

複製表結構+記錄 (key不會複製: 主鍵、外來鍵和索引)

create table t2 select * from t1;

只複製表結構

select * from service where 1=2; 條件為假,查不到任何記錄

reate table t4 like employees;

tinyint smallint mediumint int bigint

為該型別指定寬度時,僅僅只是指定查詢結果的顯示寬度,與儲存範圍無關

float[(m,d)] [unsigned] [zerofill]

定義:m是數字總個數,d是小數點後個數。m最大值為255,d最大值為30

精確度:隨著小數的增多,精度變得不準確

​double[(m,d)] [unsigned] [zerofill]

定義:m是數字總個數,d是小數點後個數。m最大值為255,d最大值為30

精確度:隨著小數的增多,精度比float要高,但也會變得不準確

​decimal[(m[,d])] [unsigned] [zerofill]

定義: 準確的小數值,m是數字總個數(負號不算),d是小數點後個數。 m最大值為65,d最大值為30。

精確度: 隨著小數的增多,精度始終準確,對於精確數值計算時需要用此型別,decaimal能夠儲存精確值的原因在於其內部按照字串儲存。

日期型別

year 年

date 年-月-日

time 時:分:秒

datetime 年-月-日 時:分:秒

char : 定長,資料超出預定長度報錯,不夠用空格補位

- 特點: 查詢速度快,單浪費空間

- 檢索:在檢索或者說查詢時,查出的結果會自動刪除尾部的空格,除非我們開啟pad_char_to_full_length sql模式(set sql_mode = 'pad_char_to_full_length';)

- 注意:精準查詢時(select * from user where name='xionger';),char型別補充的空格會自動去掉進行匹配,但是用like模糊查詢時(select * from user name like 'xionger';),char型別補充的空格也會進行匹配

varchar : 變長,資料超出預定長度報錯,不夠就是實際長度

- 特點: 精準,節省空間,查詢較慢

- 檢索:尾部有空格會儲存下來,在檢索或者說查詢時,也會正常顯示包含空格在內的內容

檢視字段長度 : char_length(字段)

select char_length(name) from user;

列舉enum: 多選一

集合set: 多選多

create table type_enum(

gender enum('male','remale','serect'),

);insert into type_enum values ('remale');

create table type_enum(

gender set('a','b','c'),

);insert into type_enum values ('a', 'b');

約束條件與資料型別的寬度一樣,都是可選引數

作用:用於保證資料的完整性和一致性

primary key (pk)    標識該字段為該錶的主鍵,可以唯一的標識記錄

foreign key (fk) 標識該字段為該錶的外來鍵

not null 標識該欄位不能為空

unique key (uk) 標識該字段的值是唯一的

auto_increment 標識該字段的值自動增長(整數型別,而且為主鍵)

default 為該字段設定預設值

​unsigned 無符號

zerofill 使用0填充

not null - 不可空

null - 可空

default 預設值

建立列時可以指定預設值,當插入資料時如果未主動設定,則自動新增預設值

create table user(

id int,

name char(16) not null,

*** char(6) not null default "male"

);

單列唯一

create table user(

id int unique,

name char(16)

);聯合唯一

create table server(

id int unique,

ip char(15),

port int,

ip port,unique(ip,port)

)

從約束角度看: 主鍵等於not null + unique

1.一張表中有且有乙個主鍵

2.若沒有設定主鍵則會由上到下檢索非空且唯一的字段作為主鍵

3.若沒有主鍵也沒有非空且唯一的字段,就採用預設的隱藏字段作為主鍵(7個bytes),這樣喪失了查詢效率

innodb類要依據主鍵組織資料結構(idb檔案)

索引的目的是一步步縮小查詢範圍,減少io次數

1.auto_increment通常與primary key連用

2.auto_increment通常加給id欄位

3.auto_increment只能給被定義成key(unique key,primary key)的字段加

資料庫和表的基本操作

建立資料以dataname為名的資料庫 create database dataname 檢視當前所有的資料庫 show databases 檢視以dataname為名的資料的資訊 show create database dataname 修改資料庫的編碼方式 alter database dat...

資料庫表基本操作

資料庫表基本操作 1 建立資料庫表 create table 表名稱 欄位名稱1 字段型別 字段長度 欄位名稱2 字段型別 字段長度 欄位名稱3 字段型別 字段長度 2 刪除資料庫表 drop table 表名稱 3 向表中插入資料 insert into 表名稱 插入的欄位名稱列表 values ...

MySQL三 資料庫和表的基本操作

建立資料庫語法 create database 資料庫名稱示例 create database is 建立乙個名為is的資料庫 檢視所有已經存在的資料庫 show database 檢視乙個已經存在的資料庫的資訊 show create database is mysql一旦安裝完成,建立的資料庫編...