mysql數據庫基本操做說明

登錄:
mysql -uroot -pmysql

查看數據庫列表:
show databases;sql

更改訪問的數據庫:
use test;數據庫

查看數據表列表:
show tables;ide

建用戶:
CREATE USER test@'192.168.0.11' IDENTIFIED BY '123123';編碼

賦權限:
grant all privileges on *.* to test@'192.168.1.11' identified by '123123'spa

收回權限:
REVOKE INSERT ON PERSON.* FROM test@'192.168.0.11';排序

改密碼:
use mysql;
UPDATE user SET password=PASSWORD('輸入新密碼') WHERE user='用戶名';索引

刪除用戶:
DROP USER test@'192.168.0.11';ip

查看用戶權限:
show grants for 'root'@'192.168.1.102';ci

 

查看數據庫服務innodb引擎運行狀態:
show engine innodb status\G;

查看數據庫屬性配置:
show VARIABLES like '%%';

查看數據庫狀態:
show status like '%Aborted_clients%';

建庫:

CREATE DATABASE  `數據庫名稱` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

        CHARACTER SET:字符集存儲的編碼方式!

        COLLATE:即比對方法,用於指定數據集如何排序,以及字符串的比對規則

!!!說明 _ci:大小寫不敏感 _cs:大小寫敏感

建表:

CREATE TABLE `product` (
`proID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品表主鍵',
`price` decimal(10,2) NOT NULL COMMENT '商品價格',
`type` int(11) NOT NULL COMMENT '商品類別(0生鮮,1食品,2生活)',
`dtime` datetime NOT NULL COMMENT '建立時間',
PRIMARY KEY (`proID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品表';

複製型:

LIKE 複製
CREATE TABLE IF NOT EXISTS tb_base_like (LIKE tb_base);

select 複製
CREATE TABLE IF NOT EXISTS tb_base_select SELECT * FROM tb_base;

!!兩種複製區別:

like除了複製表字段,還複製索引,默認值,說明信息等,可是不復制數據;
select複製表字段同時導入查詢的數據,可是表結構屬性全走默認。

刪表:drop table tb_base_like;

--修改表名
--RENAME TABLE 表名 TO 新表名; 這裏面的TO不能夠省略
RENAME TABLE user11 TO user10;

修改字段類型
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]

重命名字段
ALTER TABLE tablename CHANGE [COLUMN] new_name column_definition [FIRST|AFTER col_name]

增長字段
--語法
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]

--添加默認值字段
ALTER TABLE User ADD Age INT NOT NULL DEFAULT 0;

---自增值 (auto_increment)

在mysql中添加默認值DEFAULT後面不能帶'()',若是是整形字段直接空格加上要設的值,若是是字符型字段則加上單引號'',這裏和SQL Server不一樣的地方

刪除字段
ALTER TABLE tablename DROP [COLUMN] col_name

數據類型

 

整型:TINYINT/INT/BIGINT

浮點型:浮點數若是不寫精度和標度(M,D)【數值總長M位(不包含小數點),小數點後D位】,會按照實際精度值顯示,若是存在精度和標度,若是小數點的位數超過D會自動插入四捨五入的結果不會返回錯誤,若是總長度超過M-D位會插入失敗。
FLOAT/FLOAT(4,2) DOUBLE/DOUBLE(4,2)

定點類型:定點數若是不寫精度和標度會以默認值decimal(10,0)來存儲,寫精度和標度(M,D)【數值總長M位(不包含小數點),小數點後D位】,會按照實際精度值顯示,若是存在精度和標度,若是小數點的位數超過D會自動插入四捨五入的結果並返回錯誤,若是總長度超過M-D位會插入失敗。。
decimal(10,0)

字符串類型
一、char(n)和varchar(n)中括號中n表明字符的個數,並不表明字節個數,因此當使用了中文的時候(UTF8)意味着能夠插入m箇中文,可是實際會佔用m*3個字節。
二、同時char和varchar最大的區別就在於char無論實際value都會佔用n個字符的空間,而varchar只會佔用實際字符應該佔用的空間+1,而且實際空間+1<=n。
三、超過char和varchar的n設置後,字符串會被截斷。
四、char的上限爲255字節,varchar的上限65535字節,text的上限爲65535。
五、char在存儲的時候會截斷尾部的空格,varchar和text不會。
六、varchar會使用1-3個字節來存儲長度,text不會。

時間日期類型:默認系統日期:CURRENT_TIMESTAMP,當前日期now()
SELECT
FROM_UNIXTIME(1531399337),
UNIX_TIMESTAMP('2017-01-01 12:30'),
CURDATE(),
CURTIME(),
NOW(),
UNIX_TIMESTAMP();

關於保存ip地址

ipv4(192.168.1.111)是32位的無符號整數,推薦將ipv4轉成整數進行保存。 在MySQL中提供了INET_ATON()將ipv4轉成整形以及INET_NTOA()將整形轉成ipv4 例如: create table tbl_ips ( ip int ) insert into tbl_ips( inet_aton( '192.168.1.111' ) ); ------------- select * from tbl_ips where ip=inet_aton( '192.168.1.111' ); ------------- select inet_ntoa(ip) from tbl_ips;

相關文章
相關標籤/搜索