MySQL數據庫服務概述
什么是數據庫
數據庫介紹
什么是數據庫? 存儲數據的倉庫 數據是什么? 生活中,視頻、音頻、圖片、文本等都是數據 提供數據庫服務的軟件有哪些?
軟件名開源跨平臺廠商 Oracle 否 是 甲骨文 MySQL 是 是 甲骨文 SQLServer 否 否 微軟 DB2 否 是 IBM Redis 是 是 開源軟件 Memcached 是 是 開源軟件 MongoDB 是 是 開源軟件
DB(DataBase) 數據庫 依照某種數據模型進行組織并存放到存儲器的數據集合
DBMS(DataBase Management System) 數據庫管理系統 用來操縱和管理數據庫的服務軟件
DBS(DataBase System) 數據庫系統 :即DB+DBMS 指帶有數據庫并整合了數據庫管理軟件的計算機系統
MySQL介紹
起源與發展
應用最廣泛的開源數據庫軟件 最早隸屬于瑞典的MySQL AB公司 2008年1月,MySQL AB被Sun收購 2009年4月,Sun被Oracle收購 嶄新的開源分支MariaDB 為應付MySQL可能會閉源的風險而誕生 由MySQL原作者Windenius主導開發 與MySQL保持最大的兼容
特點及應用
主要特點 1.適用于中小規模、關系型數據庫系統 2.支持Linux、Unix、Windows等多種操作系統 3.支持Python、Java、Perl、PHP等編程語言 典型應用環境 LAMP平臺,與Apache HTTP Server組合 LNMP平臺,與Nginx組合
構建MySQL服務
MySQL安裝
1.創建CentOS系統虛擬機一臺
2.配置IP地址為192.168.4.51
3.關閉firewalld
systemctl stop firewalld
4.禁用SELinux
setenforce 0 vim /etc/sysconfig/selinux 7 SELINUX=permissive
5.拷貝軟件mysql-5.7.17.tar tar包鏈接提取碼:nj8d
6.配置yum源
從官網下載RPM包鏈接在此! 如果有tar包則進行解包安裝
[ root@host51 opt
]
./mysql-community-server-5.7.17-1.el7.x86_64.rpm
[ root@host51 opt
]
[ root@host51 opt
]
544M mysql-5.7.17.tar
[ root@host51 opt
]
mysql-community-common-5.7.17-1.el7.x86_64 //數據庫和客戶端庫共享文件
mysql-community-client-5.7.17-1.el7.x86_64 //客戶端應用程序
mysql-community-devel-5.7.17-1.el7.x86_64 //客戶端應用程序的庫和頭文件
mysql-community-test-5.7.17-1.el7.x86_64
mysql-community-libs-compat-5.7.17-1.el7.x86_64 //客戶端應用程序的共享兼容庫
mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64
mysql-community-libs-5.7.17-1.el7.x86_64 //MySQL數據庫客戶端應用程序的共享庫
mysql-community-server-5.7.17-1.el7.x86_64
mysql-community-embedded-5.7.17-1.el7.x86_64 //嵌入式函數庫
mysql-community-embedded-devel-5.7.17-1.el7.x86_64 //頭文件和庫文件作為MySQL的嵌入式文件
mysql-community-embedded-compat-5.7.17-1.el7.x86_64 //嵌入式兼容函數庫
[ root@host51 opt
]
11
[ root@host51 opt
]
[ root@host51 opt
] [ root@host51 opt
]
● mysqld.service - MySQL ServerLoaded: loaded
( /usr/lib/systemd/system/mysqld.service
; enabled
; vendor preset: disabled
) Active: active
( running
) since 三 2020-02-12 18:22:54 CST
; 2h 34min ago
[ root@host51 opt
]
auto.cnf client-key.pem ib_logfile1 mysql.sock.lock server-cert.pem
ca-key.pem ib_buffer_pool ibtmp1 performance_schema server-key.pem
ca.pem ibdata1 mysql private_key.pem sys
client-cert.pem ib_logfile0 mysql.sock public_key.pem
[ root@host51 opt
] [ root@host51 opt
]
tcp LISTEN 0 80 :::3306 :::* users:
(( "mysqld" ,pid
= 11724,fd
= 22
)) [ root@host51 opt
] PID TTY TIME CMD11724 ? 00:00:04 mysqld
文件說明 /etc/my.cnf 主配置文件 /var/lib/mysql 數據庫目錄 默認端口號 3306 進程名 mysqld 傳輸協議 TCP 進程所有者 mysql 進程所屬組 mysql 錯誤日志文件 /var/log/mysqld.log
[ root@host51 opt
]
mysql mysqld mysql_secure_installation
mysqladmin mysqld-debug mysqlshow
mysqlbinlog mysqld_pre_systemd mysqlslap
mysqlcheck mysqldump mysql_ssl_rsa_setup
mysql_client_test mysqldumpslow mysqltest
mysql_client_test_embedded mysqlimport mysqltest_embedded
mysql_config mysql_install_db mysql_tzinfo_to_sql
mysql_config-64 mysql_plugin mysql_upgrade
mysql_config_editor mysqlpump mysqlxtest
[ root@host51 opt
]
/var/log/mysqld.log
[ root@host51 opt
]
mysql 11724 0.0 9.4 1119528 175516 ? Sl 18:22 0:04 /usr/sbin/mysqld --daemonize --pid-file
= /var/run/mysqld/mysqld.pid
root 11914 0.0 0.0 112720 972 pts/0 S+ 21:11 0:00
grep --color
= auto mysql
MySQL初始配置
數據庫管理員名為root 默認允許root本機連接 首次登錄密碼在安裝軟件時隨機生成 隨機密碼存儲在日志文件/var/log/mysqld.log里 連接命令mysql -h數據庫IP地址(如果連接本機服務器可以不用寫-h) -u用戶名 -p密碼 [數據庫名](如果加庫名可以直接進入該庫,如果不加庫名,則在/var/lib/mysql目錄中)
[ root@host51 opt
]
2020-02-12T10:22:51.184949Z 1
[ Note
] A temporary password is generated
for root@localhost: r-yF/1/eQ,xk
[ root@host51 opt
]
使用alter user 命令修改登錄密碼 新密碼必須滿足密碼策略 管理員root使用新密碼連接服務
[ root@host51 opt
]
.. .. .
mysql
> show databases
;
ERROR 1820
( HY000
) : You must reset your password using ALTER USER statement before executing this statement.
mysql
> alter user root@
"localhost" identified by
"123qqq...A" ;
Query OK, 0 rows affected
( 0.00 sec
)
[ root@host51 opt
]
策略名稱驗證方式 0 or LOW 長度 1 or MEDIUM(默認) 長度;數字,小寫/大寫和特殊字符 2 or STRONG 長度;數字,小寫/大寫和特殊字符;字典文件
臨時配置
mysql
> show variables like
"%password%" ;
mysql
> set global validate_password_policy
= 0
;
mysql
> set global validate_password_length
= 6
; 永久配置
[ root@host51 opt
]
4
[ mysqld
]
5 validate_password_policy
= 0
6 validate_password_length
= 6
MySQL數據庫基本管理
連接MySQL服務
客戶端連接MySQL服務的方法 ①命令行,優點是連接方式通用,更為便捷 ②web頁面 ③安裝圖形軟件 ④編寫腳本(PHP、Java、Python…) 使用mysql命令 mysql -h服務器IP -u用戶名 -p密碼 [數據庫名] quit或exit退出
客戶端把數據存儲到數據庫服務器上的步驟 ①連接數據庫服務器 ②建庫 //類似于文件夾 ③建表 //類似于文件 ④插入記錄 //類似于文件內容 ⑤斷開連接
SQL命令使用規則 SQL命令不區分字母大小寫(密碼、變量值除外) 每條SQL命令以;結束 默認命令不支持Tab鍵自動補齊 \c或Ctrl+c鍵終止SQL命令
常用的SQL命令分類 管理數據庫使用SQL(結構化查詢語言) ①DDL 數據定義語言 如:create、alter、drop ②DML 數據操作語言 如:insert、update、delete ③DCL 數據控制語言 如:grant、revoke ④DTL 數據事物語言 如:commit、rollback、savepoint
MySQL基本操作
庫管理命令
可以創建多個庫,通過庫名區分 show databases; //顯示已有的庫 select user(); //顯示連接用戶 use 庫名; //切換庫 select database(); //顯示當前所在的庫 create database 庫名; //創建新庫 show tables; //顯示已有的表 drop database 庫名; //刪除表
僅可以使用數字、字母、下劃線、不能純數字,也可以用中文 區分字母大小寫,具有唯一性 不可以使用指令關鍵字、特殊字符
mysql
> show databases
;
+--------------------+
| Database
|
+--------------------+
| information_schema
| //信息概要庫
| mysql
| //授權庫
| performance_schema
| //性能結構庫
| sys
| //系統元數據庫
+--------------------+
4 rows
in set ( 0.15 sec
) mysql
> create database db1
;
Query OK, 1 row affected
( 0.00 sec
)
[ root@host51 opt
]
auto.cnf client-key.pem ib_logfile0 mysql.sock public_key.pem
ca-key.pem db1 ib_logfile1 mysql.sock.lock server-cert.pem
ca.pem ib_buffer_pool ibtmp1 performance_schema server-key.pem
client-cert.pem ibdata1 mysql private_key.pem sys
/var/lib/mysql中沒有information_schema庫是因為information_schema是虛擬庫,存儲在內存中,其他庫都存放在硬盤中,只能讀取,存放一些服務運行時的參數信息
表管理命令
表存儲數據的文件 Mysql > create table 庫名.表名(“字段名1” 類型(寬度),“字段名2” 類型(寬度))DEFAULT CHARSET=utf8 ; //指定中文字符集,可以給字段賦值中文
mysql
> create table db1.sutinfo
( name char
( 10
) , homeaddr char
( 20
) ) ;
Query OK, 0 rows affected
( 0.01 sec
)
mysql
> show create table db1.user
;
+-------+---------------------------------------------------------------------------------------------+
| Table
| Create Table
|
+-------+---------------------------------------------------------------------------------------------+
| user
| CREATE TABLE
` user` ( ` name` char
( 10
) DEFAULT NULL
) ENGINE
= InnoDB DEFAULT CHARSET
= latin1
|
+-------+---------------------------------------------------------------------------------------------+
1 row
in set ( 0.00 sec
) mysql
> show create table db1.user \G
*************************** 1. row ***************************Table: user
Create Table: CREATE TABLE
` user` ( ` name` char
( 10
) DEFAULT NULL
) ENGINE
= InnoDB DEFAULT CHARSET
= latin1
1 row
in set ( 0.00 sec
) 建表時指定表的字符集,使其可以存儲中文
mysql
> create table db1.user2
( name char
( 3
)) default charset
= utf8
;
Query OK, 0 rows affected
( 0.06 sec
) mysql
> show create table db1.user2 \G
*************************** 1. row ***************************Table: user2
Create Table: CREATE TABLE
` user2` ( ` name` char
( 3
) DEFAULT NULL
) ENGINE
= InnoDB DEFAULT CHARSET
= utf8
1 row
in set ( 0.00 sec
) mysql
> insert into db1.user2 values
( "哈哈哈" ) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> select * from db1.user2
;
+-----------+
| name
|
+-----------+
| 哈哈哈
|
+-----------+
1 row
in set ( 0.00 sec
)
desc 庫名.表名; //查看表結構 drop table 庫名.表名; //刪除表
mysql
> desc sutinfo
;
+----------+----------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+----------+----------+------+-----+---------+-------+
| name
| char
( 10
) | YES
| | NULL
| |
| homeaddr
| char
( 20
) | YES
| | NULL
| |
+----------+----------+------+-----+---------+-------+
2 rows
in set ( 0.00 sec
) [ root@host51 opt
]
db.opt sutinfo.frm sutinfo.ibdmysql
> drop table db1.sutinfo
;
Query OK, 0 rows affected
( 0.01 sec
)
記錄管理命令
select * from 庫名.表名; //查看表記錄 insert into 庫名.表名 values(值列表); //插入表記錄 update 庫名.表名 set 字段=“值” //修改表記錄 delete from 表名; //刪除表記錄
mysql
> select * from sutinfo
;
Empty
set ( 0.00 sec
)
mysql
> insert into db1.sutinfo values
( "tian" ,
"china" ) ,
( "haha" ,
"usa" ) ;
mysql
> select * from sutinfo
;
+------+----------+
| name
| homeaddr
|
+------+----------+
| tian
| china
|
| haha
| usa
|
+------+----------+
2 rows
in set ( 0.00 sec
) mysql
> insert into db1.sutinfo values
( "aaa" ,
"zzz" ) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> select * from sutinfo
;
+------+----------+
| name
| homeaddr
|
+------+----------+
| tian
| china
|
| haha
| usa
|
| aaa
| zzz
|
+------+----------+
3 rows
in set ( 0.00 sec
) mysql
> select name from sutinfo
;
+------+
| name
|
+------+
| tian
|
| haha
|
| aaa
|
+------+
3 rows
in set ( 0.00 sec
) mysql
> update db1.sutinfo
set homeaddr
= "bj" ;
Query OK, 3 rows affected
( 0.04 sec
)
Rows matched: 3 Changed: 3 Warnings: 0mysql
> select * from sutinfo
;
+------+----------+
| name
| homeaddr
|
+------+----------+
| tian
| bj
|
| haha
| bj
|
| aaa
| bj
|
+------+----------+
3 rows
in set ( 0.01 sec
) mysql
> update db1.sutinfo
set homeaddr
= "sz" where name
= "aaa" ;
Query OK, 1 row affected
( 0.00 sec
)
Rows matched: 1 Changed: 1 Warnings: 0mysql
> select * from sutinfo
;
+------+----------+
| name
| homeaddr
|
+------+----------+
| tian
| bj
|
| haha
| bj
|
| aaa
| sz
|
+------+----------+
3 rows
in set ( 0.00 sec
)
mysql
> delete from db1.sutinfo where name
= "aaa" ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from sutinfo
;
+------+----------+
| name
| homeaddr
|
+------+----------+
| tian
| bj
|
| haha
| bj
|
+------+----------+
2 rows
in set ( 0.00 sec
) mysql
> delete from db1.sutinfo
;
Query OK, 2 rows affected
( 0.00 sec
) mysql
> select * from sutinfo
;
Empty
set ( 0.00 sec
) mysql
> desc sutinfo
;
+----------+----------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+----------+----------+------+-----+---------+-------+
| name
| char
( 10
) | YES
| | NULL
| |
| homeaddr
| char
( 20
) | YES
| | NULL
| |
+----------+----------+------+-----+---------+-------+
2 rows
in set ( 0.00 sec
) mysql
> drop table db1.sutinfo
;
Query OK, 0 rows affected
( 0.01 sec
) mysql
> show tables
;
Empty
set ( 0.00 sec
)
MySQL數據類型
常見的信息種類
數值型:體重、身高、成績、工資 字符型:姓名、工作單位、通信地址 枚舉型:興趣愛好、性別、專業 日期時間型:出生日期、注冊時間
字符類型
定長char
定長:char(字符個數) 最大字符個數255個 不夠指定字符個數時在右邊用空格補全 字符個數超出時,無法寫入數據
變長varchar
變長:varchar(字符個數) 按數據實際大小分配存儲空間 字符個數超出時,無法寫入數據 大文本類型:text/blob 字符數大于65535存儲時使用
mysql
> create table db1.t1
( -
> name char
( 5
) ,-
> class char
( 7
) ,-
> email varchar
( 50
) -
> ) ;
Query OK, 0 rows affected
( 0.06 sec
) mysql
> desc t1
;
+-------+-------------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+-------+-------------+------+-----+---------+-------+
| name
| char
( 5
) | YES
| | NULL
| |
| class
| char
( 7
) | YES
| | NULL
| |
| email
| varchar
( 50
) | YES
| | NULL
| |
+-------+-------------+------+-----+---------+-------+
3 rows
in set ( 0.00 sec
) mysql
> insert into db1.t1 values
( -
> "aaa" ,
"bbb" ,
"ccc" ) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> insert into db1.t1 values
( "zzz" ,
"yyy" ,
"xxx" ) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from db1.t1
;
+------+-------+-------+
| name
| class
| email
|
+------+-------+-------+
| aaa
| bbb
| ccc
|
| zzz
| yyy
| xxx
|
+------+-------+-------+
2 rows
in set ( 0.00 sec
)
數值類型
整數型
類型名稱有符號范圍無符號范圍 tinyint 微小整數 -128~127 0~255 smallint 小整數 -327678~32767 0~65535 mediumint 中整型 -2 23 ~223 -1 0~224 -1 int 大整型 -231 ~231 -1 0~224 -1 bigint 極大整型 -263 ~263 -1 0~264 -1 unsigned 使用無符號存儲范圍
mysql
> create table db1.t2
( name char
( 10
) , age tinyint unsigned
) ;
Query OK, 0 rows affected
( 0.06 sec
) mysql
> insert into db1.t2 values
( "bob" , 256
) ;
ERROR 1264
( 22003
) : Out of range value
for column
'age' at row 1 mysql
> insert into db1.t2 values
( "bob" , 25
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> insert into db1.t2 values
( "tom" , -1
) ;
ERROR 1264
( 22003
) : Out of range value
for column
'age' at row 1 mysql
> insert into db1.t2 values
( "tom" , 1
) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> insert into db1.t2 values
( "jerry" , 19.5
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> insert into db1.t2 values
( "jack" , 19.4
) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> select * from db1.t2
;
+-------+------+
| name
| age
|
+-------+------+
| bob
| 25
|
| tom
| 1
|
| jerry
| 20
|
| jack
| 19
|
+-------+------+
4 rows
in set ( 0.00 sec
)
浮點型
浮點型 格式1:字段名 類型; 格式2:字段名 類型(總寬度,小數位數 )
類型名稱有符號范圍無符號范圍 float 單精度 -3.4028323466E+38 到 -1.175494351E-38 1.175494351E-38 到 3.402823466E+38 double 雙精度 -1.7976931348623157E+308 到 -2.2250738585072014E-308 2.2250738585072014E-308 到 1.7976931348623157E+308
單精度和雙精度的區別 雙精度比單精度表示的位數大 精確的位數多 簡單地說, float表示的小數點位數少,double能表示的小數點位數多 單精度在32位機器上用4個字節存儲,而double則用8個字節存儲,雙精度比單精度占用空間大
mysql
> insert into db1.t3 value
( "aaa" , 4300
) ;mysql
> insert into db1.t3 value
( "tian" , 18739.22
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from db1.t3
;
+------+----------+
| name
| money
|
+------+----------+
| aaa
| 4300.00
|
| tian
| 18739.22
|
+------+----------+
2 rows
in set ( 0.00 sec
)
日期時間類型
范圍:1000-01-01 00:00:00~9999-12-31 23:59:59 格式:yyyymmddhhmmss
范圍:1970-01-01 00:00:00~2038-01-19 00:00:00 格式:yyyymmddhhmmss
0001-01-01~9999-12-31 yyyymmdd
范圍:1901~2155 格式:yyyy
格式:HH:MM:SS
當未給timestap字段賦值時,自動以當前系統時間賦值,而datetime值為NULL(空)
要求使用4位數賦值 當使用2位數賦值時: 01~69視為 2001~2069 70~99視為 1970~1999
日期時間類型: 年 ---------------------- year---------YYYY---------2020---------出生年份 日期-------------------- date--------- YYYYMMDD-------20200214----- 聚會時間 時間(24小時制)------- time---- HHMMSS------- 100000------ 聚會結束時間 日期時間----------------- datetime 和 timestamp-----YYYYMMDDHHMMSS
mysql
> create table db1.t5
( name char
( 15
) , csnf year , birthday
date , up_class
time ,party datetime
) ;
Query OK, 0 rows affected
( 0.02 sec
) mysql
> desc db1.t5
;
+----------+----------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+----------+----------+------+-----+---------+-------+
| name
| char
( 15
) | YES
| | NULL
| |
| csnf
| year
( 4
) | YES
| | NULL
| |
| birthday
| date | YES
| | NULL
| |
| up_class
| time | YES
| | NULL
| |
| party
| datetime
| YES
| | NULL
| |
+----------+----------+------+-----+---------+-------+
5 rows
in set ( 0.04 sec
) mysql
> insert into db1.t5 values
( "bob" , 1990 , 20200120 , 093000 , 20200214180000
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from db1.t5
;
+------+------+------------+----------+---------------------+
| name
| csnf
| birthday
| up_class
| party
|
+------+------+------------+----------+---------------------+
| bob
| 1990
| 2020-01-20
| 09:30:00
| 2020-02-14 18:00:00
|
+------+------+------------+----------+---------------------+
1 row
in set ( 0.00 sec
)
類型用途 curtime() 獲取當前系統的時間 curdate() 獲取當前的系統日期 now() 獲取當前系統日期和時間 year() 獲取年 month() 獲取月 day() 獲取日 date() 獲取日期 time() 獲取時間
使用命令的值給日期時間類型字段賦值:
Linux命令行查當前時間
[ root@host51 ~
]
2020-02-14
[ root@host51 ~
]
2020
[ root@host51 ~
]
2020年 02月 14日 星期五 09:36:23 CSTmysql
> select curdate
( ) ;
+------------+
| curdate
( ) |
+------------+
| 2020-02-14
|
+------------+
1 row
in set ( 0.06 sec
) mysql
> select curtime
( ) ;
+-----------+
| curtime
( ) |
+-----------+
| 09:36:54
|
+-----------+
1 row
in set ( 0.00 sec
) mysql
> select now
( ) ;
+---------------------+
| now
( ) |
+---------------------+
| 2020-02-14 09:37:00
|
+---------------------+
1 row
in set ( 0.00 sec
) mysql
> select month
( now
( )) ;
+--------------+
| month
( now
( )) |
+--------------+
| 2
|
+--------------+
1 row
in set ( 0.00 sec
) mysql
> select day
( now
( )) ;
+------------+
| day
( now
( )) |
+------------+
| 14
|
+------------+
1 row
in set ( 0.00 sec
) mysql
> select time
( now
( )) ;
+-------------+
| time
( now
( )) |
+-------------+
| 09:37:46
|
+-------------+
1 row
in set ( 0.00 sec
) mysql
> select year
( now
( )) ;
+-------------+
| year
( now
( )) |
+-------------+
| 2020
|
+-------------+
1 row
in set ( 0.00 sec
) mysql
> select date
( now
( )) ;
+-------------+
| date
( now
( )) |
+-------------+
| 2020-02-14
|
+-------------+
1 row
in set ( 0.00 sec
) mysql
> insert into db1.t5 values
( "jerry" , year
( now
( )) , date
( now
( )) ,time
( now
( )) ,now
( ) ) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from db1.t5
;
+-------+------+------------+----------+---------------------+
| name
| csnf
| birthday
| up_class
| party
|
+-------+------+------------+----------+---------------------+
| bob
| 1990
| 2020-01-20
| 09:30:00
| 2020-02-14 18:00:00
|
| jerry
| 2020
| 2020-02-14
| 09:40:55
| 2020-02-14 09:40:55
|
+-------+------+------------+----------+---------------------+
year類型:
mysql
> insert into db1.t5 values
( "tom" , 81 , date
( now
( )) ,time
( now
( )) , now
( ) ) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> insert into db1.t5 values
( "john" , 53 , date
( now
( )) ,time
( now
( )) , now
( ) ) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> select * from db1.t5
;
+-------+------+------------+----------+---------------------+
| name
| csnf
| birthday
| up_class
| party
|
+-------+------+------------+----------+---------------------+
| bob
| 1990
| 2020-01-20
| 09:30:00
| 2020-02-14 18:00:00
|
| jerry
| 2020
| 2020-02-14
| 09:40:55
| 2020-02-14 09:40:55
|
| tom
| 1981
| 2020-02-14
| 09:52:23
| 2020-02-14 09:52:23
|
| john
| 2053
| 2020-02-14
| 09:52:46
| 2020-02-14 09:52:46
|
+-------+------+------------+----------+---------------------+
4 rows
in set ( 0.00 sec
)
日期時間字段datetime和timestap:
mysql
> create table db1.t6
( name char
( 10
) , meeting datetime ,party timestamp
) ;
Query OK, 0 rows affected
( 0.02 sec
) mysql
> insert into db1.t6 values
( "tian" , 20200214130000 , 20200214183000
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> desc db1.t6
;
+---------+-----------+------+-----+-------------------+-----------------------------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+---------+-----------+------+-----+-------------------+-----------------------------+
| name
| char
( 10
) | YES
| | NULL
| |
| meeting
| datetime
| YES
| | NULL
| |
| party
| timestamp
| NO
| | CURRENT_TIMESTAMP
| on update CURRENT_TIMESTAMP
|
+---------+-----------+------+-----+-------------------+-----------------------------+
3 rows
in set ( 0.00 sec
) mysql
> select * from db1.t6
;
+------+---------------------+---------------------+
| name
| meeting
| party
|
+------+---------------------+---------------------+
| tian
| 2020-02-14 13:00:00
| 2020-02-14 18:30:00
|
+------+---------------------+---------------------+
1 row
in set ( 0.00 sec
) mysql
> insert into db1.t6
( name,meeting
) values
( "nb" , 20200214140000
) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> select * from db1.t6
;
+------+---------------------+---------------------+
| name
| meeting
| party
|
+------+---------------------+---------------------+
| tian
| 2020-02-14 13:00:00
| 2020-02-14 18:30:00
|
| nb
| 2020-02-14 14:00:00
| 2020-02-14 10:03:53
|
+------+---------------------+---------------------+
2 rows
in set ( 0.00 sec
) mysql
> insert into db1.t6
( name ,party
) values
( "wk" , 20200214203000
) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> select * from db1.t6
;
+------+---------------------+---------------------+
| name
| meeting
| party
|
+------+---------------------+---------------------+
| tian
| 2020-02-14 13:00:00
| 2020-02-14 18:30:00
|
| nb
| 2020-02-14 14:00:00
| 2020-02-14 10:03:53
|
| wk
| NULL
| 2020-02-14 20:30:00
|
+------+---------------------+---------------------+
3 rows
in set ( 0.00 sec
)
枚舉類型
格式:字段名 enum(值1,值2,值N) 僅能選擇一個值 字段值必須在列表里選擇
格式:字段名 set(值1,值2,值N) 選擇一個或多個值 字段值必須在列表里選擇
mysql
> create table db1.t7
( name char
( 15
) ,sex enum
( "boy" ,
"girl" ) , likes set
( "eat" ,
"game" ,
"money" ,
"it" )) ;
Query OK, 0 rows affected
( 0.01 sec
) mysql
> desc db1.t7
;
+-------+--------------------------------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+-------+--------------------------------+------+-----+---------+-------+
| name
| char
( 15
) | YES
| | NULL
| |
| sex
| enum
( 'boy' ,
'girl' ) | YES
| | NULL
| |
| likes
| set
( 'eat' ,
'game' ,
'money' ,
'it' ) | YES
| | NULL
| |
+-------+--------------------------------+------+-----+---------+-------+
3 rows
in set ( 0.00 sec
) mysql
> insert into db1.t7 values
( "nb" ,
"boy" ,
"eat,it" ) ;
Query OK, 1 row affected
( 0.00 sec
) mysql
> insert into db1.t7 values
( "wk" ,
"man" ,
"eat,it" ) ;
ERROR 1265
( 01000
) : Data truncated
for column
'sex' at row 1
mysql
> insert into db1.t7 values
( "wk" ,
"girl" ,
"it" ) ;
Query OK, 1 row affected
( 0.01 sec
) mysql
> desc db1.t7
;
+-------+--------------------------------+------+-----+---------+-------+
| Field
| Type
| Null
| Key
| Default
| Extra
|
+-------+--------------------------------+------+-----+---------+-------+
| name
| char
( 15
) | YES
| | NULL
| |
| sex
| enum
( 'boy' ,
'girl' ) | YES
| | NULL
| |
| likes
| set
( 'eat' ,
'game' ,
'money' ,
'it' ) | YES
| | NULL
| |
+-------+--------------------------------+------+-----+---------+-------+
3 rows
in set ( 0.00 sec
)
like不能用做字段名,like是mysql的命令!!!!
總結
以上是生活随笔 為你收集整理的Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。