Sql 庫和表的基本操作、基本數據類型
一、數據庫的基本操作
基本操作:
1、查看當前數據庫:show databases;
2、進入到指定的數據庫:use [數據庫名],
數據庫的增刪改查:
1、創建數據庫:create database [數據庫名]
2、刪除數據庫:drop database [數據庫名]
3、修改數據庫的編碼:alter database [數據庫名] charset gbk;
4、查看當前數據庫:select database();
show create database [數據庫名];
二、表的基本操作
基本操作:
1、查看當前數據庫裏的表:show tables;
表的增刪改查
1、創建表:
create table [表名] (字段+約束)
2、刪除表:
drop table [表名],
3、修改表:
update db1.t1 set name=‘Andey‘ where id=2;
4、查詢表
查詢所有select * from [表名]
根據條件查詢:where 條件
查詢字段:select id,name.......
5、復制表
create table t2 select * from t1 ( 既復制表結構也復制表內容 );
create table t2 select * from t1 where 1>2; (只復制表結構) 或:create table t2 like db1.t1;
三、表的存儲引擎
create table t1 ( id int ) engine = innodb;(默認引擎)
create table t2 (id int ) engine = myisam;
create table t3(id int)engine=memory;(做緩存,退出後表的數據消失)
create table t4(id int)engine=blackhole;(無論往表裏怎麽插數據,都為空)
四、數據的基本類型:
1、整型(默認使用就行)
包括tinyint 、smallint 、int 、bigint
有符號:
無符號:
2、float單精度類型:
float(m,d)m表示小數點前後位的個數,d 表示小數點後的個數
double雙精度類型:
double(m,d)相同
float、double兩者表示的範圍不一樣隨著小數點後的位數增多,表示的數值越來越不準確
decimal 精確表示小數,隨著小數點後的位數增多,數值一直精準
3、日期類型
year:表示年份如1998,2000
date:YYYY—MM—DD用now()表示年 月 日
time:HH:MM:SS 用now()表示 時 分 秒
datetime:YYYY—MM—DD , HH:MM:SS Now() 年 月 日,時 分 秒
4、char()和varchar()
查詢: select @@sql_mode;
https://www.cnblogs.com/majj/p/9167178.html
在使用char_length()查詢長度的時候char 和varchar()
如:select x,length(x),y,length(y) from t1;
char()會將字符裏的空格刪除,顯示非空的字符長度(可以通過修改sql_mode修改char的顯示)
varchar()會將字符完全顯示出來 包括空格
5、枚舉和集合類型
enum(‘x1 ‘ , ‘ x2‘ ,‘ x3 ‘......)相當於單選
set(‘b1 ‘ , ‘b2 ‘ , ‘ b3 ‘ , ‘ b4 ‘ ......)可以選中多個
create table usetable(
-> id int,
-> name varchar(20),
-> sex enum(‘male‘,‘female‘,‘other‘),
-> fav set(‘football‘,‘basketball‘)
-> );
insert into usetable values
-> (1,‘alex‘,‘male‘,‘football,basketball‘);
五、完整性約束:
PRIMARY KEY (PK) #標識該字段為該表的主鍵,可以唯一的標識記錄
FOREIGN KEY (FK) #標識該字段為該表的外鍵
NOT NULL #標識該字段不能為空
UNIQUE KEY (UK) #標識該字段的值是唯一的
AUTO_INCREMENT #標識該字段的值自動增長(整數類型,而且為主鍵)
DEFAULT #為該字段設置默認值
UNSIGNED #無符號
ZEROFILL #使用0填充
1、not null 與 default 約束同一個字段
當未添加數據時 會自動設置為 默認值
create table student2(
-> id int not null,
-> name varchar(50) not null,
-> age int(3) unsigned not null default 18,
);
Sql 庫和表的基本操作、基本數據類型