高明專業(yè)網站建設報價青海百度關鍵詞seo
數據庫的列類型
int:整型 ? ? ? ? ? ? ? ? ? ? ?用于定義整數類型的數據
float:單精度浮點4字節(jié)32位 ? ? ? ?準確表示到小數點后六位 ? ? ? ?
double:雙精度浮點8字節(jié)64位
char:固定長度的字符類 ? ? ? 用于定義字符類型數據,固定10字節(jié),如果你設定5字節(jié),顯示還是10字節(jié)
#Char如果存入數據的實際長度比指定長度要小,會補空格至指定長度,如果存入的數據的實際長度大于指定長度,低版本會被截取,高版本會報錯
varchar:可變長度的字符類型 ? ? ? ? ? ? ? ? 固定10字節(jié),如果你設定5字節(jié),顯示就是5字節(jié)
text:文本
image:圖片
decimal(5,2):5個有效長度數字,小數點后面有2位 ? ? ? ?指定長度數組?
?
數據庫基本操作
SQL語言規(guī)范
在數據庫系統(tǒng)中,SQL 語句不區(qū)分大小寫,建議用大寫
SQL語句可單行或多行書寫,默認以 " ; " 結尾
關鍵詞不能跨多行或簡寫
用空格和TAB 縮進來提高語句的可讀性
子句通常位于獨立行,便于編輯,提高可讀性
SQL語句分類
DDL: Data Defination Language 數據定義語言,用于創(chuàng)建數據庫對象,用于數據庫的操作,如庫、表、索引等。eg:create、drop、alter。
數據庫相關操作(查show、增create、刪drop):
1、查看數據庫信息:show database;
2、創(chuàng)建數據庫:create database 數據庫名;
3、刪除數據庫:drop database 數據庫名;
?
DML: Data Manipulation Language 數據操縱語言,用于對表中的數據進行管理,用來插入、刪除、修改數據庫中的數據。eg:insert、delete、update。
DQL:數據查詢語言,用于從數據表中查找符合條件的數據記錄。eg:select。
DCL:數據控制語言,用于設置或者更改數據庫用戶或角色權限(數據控制語句,用于控制語句,用于控制不同數據段直接的許可和訪問級別的語句,這些 語句定義了數據庫、表、字段、用戶的訪問權限和安全級別,如commit、follback、grant、revoke)
查看表,使用表
進入mysql的方法
mysql -u root -p
查看當前數據庫
show databases;
進入指定表
#進入指定的mysql表中
use mysql
查看表名
show tables;
查看表的結構
describe user;
管理數據庫
創(chuàng)建數據庫和表
#創(chuàng)建數據庫
create database qzz;
#創(chuàng)建表
CREATE TABLE 表名 (字段1 數據類型,字段2 數據類型[,...][,PRIMARY KEY (主鍵名)]);use qzz; #創(chuàng)建一個info表,id int類型,name char類型,長度不能超過10且不能為空,age int型,sex char型,長度為4,sorce一共五位。保留小數點后兩位
create table info mysql> create table info(id int,name char(10) not null,age int,sex char(4),sorce decimal(5,2));#查看表結構
desc info;
刪除數據庫和表
#進入指定的數據庫內刪除表
drop table qzz;#在數據庫外刪除
drop table qzz.qzz;
刪除指定數據庫
DROP DATABASE 數據庫名;
mysql> drop database cfs;
向數據表中添加數據
#向數據表中插入新的數據記錄
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);insert into info(id,name,age,sex,sorce) values(1,'陳fs',20,'男',95.5);
insert into info(id,name,age,sex,sorce) values(2,'喬zz',20,'女',79);#查看info表
select * from info;
#直接使用表明加入字段,每個字段都要添加
insert into info values(3,'丁xl',24,'男',60.01);
#可以指定字段添加,沒有添加的就是默認值NULL
insert into info(id,name,age)values(4,'袁ht',26);
查詢數據表中數據
#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 條件表達式];#示例1:查看所有數據
select * from info;
#查詢指定數據
select name from info where id=1;
#只顯示前兩行
select * from info limit 2;
select * from info where id<=2;
只顯示3-4行
select * from info limit 2,2;
select * from info where id>2 and id<=4;
修改數據表的數據
#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 條件表達式]; #修改名字
UPDATE info SET name='qzz' WHERE id=2;
刪除數據表中數據
#格式:
DELETE FROM 表名 [WHERE 條件表達式];#刪除表中id為4的數據
delete from info where id=4;
修改表明和表結構
格式:
ALTER TABLE 舊表名 RENAME 新表名;#將表名info修改成base
alter table info rename base;
擴展表結構(增加字段)
#default 'default值':表示此字段設置默認值 地址未填寫!;可與 NOT NULL 配合使用
ALTER TABLE 表名 ADD address varchar(50) default 'default值';alter table base add address varchar(50) default 'china';
修改字段(列)名,添加唯一鍵
唯一鍵的作用,設置這個字段不能重復,比如說身份證、手機號,一般不作為主鍵,但也不能重復,就設置為唯一鍵#格式
ALTER TABLE 表名 CHANGE 舊列名 新列名 數據類型 [unique key];alter table base change id sid char(4) unique key;
刪除表中字段
#格式
ALTER TABLE 表名 drop 字段名;alter table base drop age;
克隆表
方法一:
#通過 LIKE 方法,復制 base 表結構生成 test01 表
create table 新表 like 源表;
#導入數據
insert into 新表 (select * from 源表); 數據一樣,表結構一樣create table test1 like base;
insert into test1 select * from base;
方法二:
create table 新表 (select * from 源表); 數據一樣,表結構可能不一樣create table test2 (select * from base);
#獲取數據表的表結構、索引等信息show create table base\G;
清空表
方法一:
#DELETE清空表后,返回的結果內有刪除的記錄條目;DELETE工作時是一行一行的刪除記錄數據的;如果表中有自增長字段,使用DELETE FROM 刪除所有記錄后,再次新添加的記錄會從原來最大的記錄 ID 后面繼續(xù)自增寫入記錄。delete from 表名; 一條一條的刪除,效率較慢,自增長字段仍然會按照清空前的順序自增delete from test1
方法二:
TRUNCATE 清空表后,沒有返回被刪除的條目;TRUNCATE 工作時是將表結構按原樣重新建立,因此在速度上 TRUNCATE 會比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表內數據后,ID 會從 1 開始重新記錄(相當于格式化)truncate table 表名; 直接重置表,清空效率快,自增長字段會從1重新開始
truncate table test2;
臨時表
臨時表創(chuàng)建成功之后,使用SHOW TABLES命令是看不到創(chuàng)建的臨時表的,臨時表會在連接退出后被銷毀。 如果在退出連接之前,也可以可執(zhí)行增刪改查等操作,比如使用 DROP TABLE 語句手動直接刪除臨時表。臨時表 create temporary table 表名 (....); 臨時表只能在當前會話中有效,且退出當前會話則會失效create temporary table test1(id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int(18) not null unique key,score varchar(50));
外鍵約束
保證數據的完整性和一致性
外鍵的定義:如果同一個屬性字段x在表一中是主鍵,而在表二中不是主鍵,則字段x稱為表二的外鍵。主鍵表與外鍵表的理解:(1)以公共關鍵字作主鍵的表為主鍵表(父表、主表)(2)以公共關鍵字作為外鍵的表為外鍵表(從表、外表)與外鍵關聯(lián)的子表的字段必須設置為主鍵。要求主表外鍵字段和子表的字段具備相同的數據類型、字符長度和約束。主鍵表: alter table 表名 add primay key (主鍵字段);
外鍵表: alter table 表名 [constraint FK_外鍵別名] add foreign key (外鍵字段) references 主鍵表名 (主鍵字段);
插入數據時,是先主表再外表;刪除數據時,是先外表再主表
#創(chuàng)建主表prof
create table prof (pid int,pname char(10));#創(chuàng)建從表student
create table student (id int,name varchar(10),age int,proid int);#為主表prof添加一個主鍵約束,主鍵名建議以“PK_”開頭
alter table prof add primary key(pid);#為從表student添加外鍵,并將student表的proid字段和prof表的pid字段建立外鍵關聯(lián),外鍵名建議以“FK_”開頭
alter table student add constraint FK_PRO foreign key (proid) references proff(pid);必須先給主表插入數據后,從表才能插入
insert into prof values(1,'云計算');
insert into prof values(2,'大數據');
insert into prof values(3,'JAVA');
insert into prof values(4,'前端');
insert into prof values(5,'UI設計');給從插入數據
insert into student values(1,'yht',26,1);
insert into student values(1,'qzz',22,4);
insert into student values(1,'dxl',22,3);