day2-mysql基本命令和數據類型


庫和表

庫是用來存表的。一個數據庫管理系統中可能包含若干個數據庫。一個庫中可以存放多個表,表類似於一個表格,有規律和格式的存儲數據。

mysql安裝好后系統自帶的庫有

information_schema:是一個信息數據庫,它保存着關於MySQL服務器所維護的所有其他數據庫的信息。(如數據庫名,數據庫的表,表欄的數據類型與訪問權 限等。) 

mysql:mysql的核心數據庫,主要負責存儲數據庫的用戶、權限設置、關鍵字等mysql自己需要使用的控制和管理信息。(常用的,在mysql.user表中修改root用戶的密碼)。 

performance_schema:主要用於收集數據庫服務器性能參數。

sys:Sys庫所有的數據源來自:performance_schema。目標是把performance_schema的把復雜度降低,讓DBA能更好的閱讀這個庫里的內容。讓DBA更快的了解DB的運行情況。 

 

操作庫的命令

查詢庫

show databases;

新增庫

create database <數據庫名>;

刪除庫

drop database <數據庫名>;

使用庫

use <數據庫名>;

 

操作表命令

查詢庫中的表

show tables;

創建表

CREATE TABLE student (
  stu_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  stu_name varchar(20) NOT NULL COMMENT '學生姓名',
  stu_age int(3) NOT NULL DEFAULT NULL COMMENT '學生年齡',
  stu_weight decimal(5,2) DEFAULT '0.00' COMMENT '體重',
  create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='學生信息表';
 
        

  相關字段描述

NOT NULL 字段不能為空
AUTO_INCREMENT 自動增長
PRIMARY KEY 主鍵,唯一用來標識數據行的,它是不能為空的,最好每個表都要設置一個主鍵
COMMENT  字段描述
DEFAULT  默認值
CURRENT_TIMESTAMP    當前時間戳
ENGINE=InnoDB 數據庫儲存引擎
UNIQUE 數據內容不能重復
UNSIGNED 無符號,主要是用在數值字段上修飾,不能為負數

 

 

 

 

 

 

 

 

 

查看表結構信息

desc <表名>;

  查看表創建

show create table <表名>;

  刪除表

drop table <表名>;

  表重命名

RENAME TABLE 原名 TO 新名;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;

  修改表字段

#添加一列ALTER TABLE 表名字 ADD 列名字 數據類型 約束;
#刪除一列
ALTER TABLE 表名字 DROP 列名字;
#修改一列
ALTER TABLE 表名字 CHANGE 原列名 新列名 數據類型 約束;
#改變數據類型
ALTER TABLE 表名字 MODIFY 列名字 新數據類型;

 

操作數據命令

     添加數據

#根據列插入數據
insert
into student (stu_name, stu_age) values (’李貴’,20);

#根據表字段插入輸入
insert into student values (1,’李貴’,20,60.70,’2019-05-16 00:26:16’);

刪除數據

#刪除所有字段
delete from student;
#刪除符合條件字段
delete from student where id = 1;

  查詢語句

#查詢所有表數據
select * from student;  
#查詢指定字段的所有數據
select stu_name, stu_age from student;
#條件查詢
select * from student where stu_sex = ''; select * from student where stu_age > 20; 注意:* 代表所有字段

  修改數據

update student set stu_age=20,stu_name='張三' where id = 1

注意:沒有where條件會將該表所有數據都修改

 

  添加約束

  添加主鍵約束

alter table 表名 add constraint pk_student primary key 表名(主鍵字段);

刪除主鍵約束

alter table 表名 drop primary key;

 

添加唯一約束

alter table 表名 add unique key 約束名 (字段);

 

 

數據類型

 整數型

  

  小數型

float         浮點型,數值范圍為-3.4E38~3.4E38(7個有效位)

double     雙精度實型,數值范圍-1.7E308~1.7E308(15個有效位)

decimal    數字型,128bit,不存在精度損失,常用於銀行帳目計算。(28個有效位)

  例如:price decimal(5,2) 該表達式的取值范圍是-999.99~999.99

 

字符串類型

char         長度255

varchar    長度65535

CHAR和VARCHAR類型聲明的長度表示你想要保存的最大字符數。例如,CHAR(30)可以占用30個字符。 CHAR列的長度固定為創建表時聲明的長度。當保存CHAR值時,

在它們的右邊填充空格以達到指定的長度,而varchar是根據字符串實際長度保存。如果varchar都不夠存可以使用text和longtext

 

時間類型

時間類型DATE, DATETIME
MySQL以'YYYY-MM-DD HH:MM:SS'格式檢索和顯示DATETIME值
比較日期的大小可以使用比較運算符

select * from student where s_begin > '2004-01-01';

 

select sysdate() '系統時間';
select now()    '當前時間';
select curdate() '當前日期';
select curtime() '當前時分秒';

 

sysdate() 日期時間函數跟 now() 類似,不同之處在於:now() 在執行開始時值就得到了, sysdate() 在函數執行時動態得到值。看下面的例子就明白了:

select now(), sleep(3), now();
select sysdate(), sleep(3), sysdate ();

 


被格式化的時間

select DATE_FORMAT(now(),'%Y/%m/%d %T') ;

 

根據format字符串格式化date值:
%S, %s   兩位數字形式的秒( 00,01, ..., 59)
%I, %i     兩位數字形式的分( 00,01, ..., 59)
%H          兩位數字形式的小時,24 小時(00,01, ..., 23)
%h          兩位數字形式的小時,12 小時(01,02, ..., 12)
%k          數字形式的小時,24 小時(0,1, ..., 23)
%l           數字形式的小時,12 小時(1, 2, ..., 12)
%T         24 小時的時間形式(hh:mm:ss)
%r          12 小時的時間形式(hh:mm:ss AM 或hh:mm:ss PM)
%p         AM或PM
%W        一周中每一天的名稱(Sunday, Monday, ..., Saturday)
%a         一周中每一天名稱的縮寫(Sun, Mon, ..., Sat)
%d         兩位數字表示月中的天數(00, 01,..., 31)
%e         數字形式表示月中的天數(1, 2, ..., 31)
%D        英文后綴表示月中的天數(1st, 2nd, 3rd,...)
%w        以數字形式表示周中的天數( 0 = Sunday, 1=Monday, ..., 6=Saturday)
%j          以三位數字表示年中的天數( 001, 002, ..., 366)
%U        周(0, 1, 52),其中Sunday 為周中的第一天
%u         周(0, 1, 52),其中Monday 為周中的第一天
%M        月名(January, February, ..., December)
%b         縮寫的月名( January, February,...., December)
%m        兩位數字表示的月份(01, 02, ..., 12)
%c         數字表示的月份(1, 2, ...., 12)
%Y        四位數字表示的年份
%y         兩位數字表示的年份

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM