MySQL 數(shù)據(jù)庫(kù)服務(wù)
#主配置文件
創(chuàng)新互聯(lián)專注于泗洪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。泗洪網(wǎng)站建設(shè)公司,為泗洪等地區(qū)提供建站服務(wù)。全流程按需定制開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
/etc/my.cnf
#查看服務(wù)狀態(tài)
systemctl status mysqld
#數(shù)據(jù)庫(kù)目錄
/var/lib/mysql
#數(shù)據(jù)庫(kù)進(jìn)程名
[root@mysql ~]#ps -C mysqld
PID TTY TIME CMD
5604 ? 00:00:00 mysqld
#默認(rèn)端口號(hào)
[root@mysql ~]#netstat -pantu | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 5604/mysqld
#進(jìn)程所屬者
[root@mysql ~]#grep mysql /etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
#進(jìn)程所屬組
[root@mysql ~]#grep mysql /etc/group
mysql:x:27:
[root@mysql ~]# ps aux | grep mysqld
mysql 5604 0.2 16.8 1119216 171772 ? Sl 21:36 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 5754 0.0 0.0 112660 972 pts/0 R+ 21:39 0:00 grep --color=auto mysqld
[root@mysql ~]# ls -ld /var/lib/mysql
drwxr-x--x. 5 mysql mysql 4096 12月 19 21:36 /var/lib/mysql
#mysql 啟動(dòng)后自動(dòng)生成的日志文件
[root@mysql ~]# ls /var/log/mysqld.log
/var/log/mysqld.log
使用sql命令管理數(shù)據(jù)庫(kù)
sql 命令分類
DDL數(shù)據(jù)定義語(yǔ)言 (create alter drop)
DML數(shù)據(jù)操作語(yǔ)言 ( insert update delete select )
DCL數(shù)據(jù)控制語(yǔ)言 ( grant revoke )
DTL數(shù)據(jù)事物語(yǔ)言 ( commit rollback savepoint )
把數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器上的過(guò)程
1,連接數(shù)據(jù)庫(kù)服務(wù)器
客戶端自己提供連接工具
2,創(chuàng)建庫(kù)(文件夾)
數(shù)據(jù)庫(kù)命名規(guī)則?
不能純數(shù)字
不能有特殊符號(hào)
不能用關(guān)鍵字
唯一性
創(chuàng)建庫(kù)
create database 庫(kù)名;
mysql> create database gamedb;
#在對(duì)應(yīng)數(shù)據(jù)庫(kù)目錄會(huì)生成相關(guān)文件
[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/
db.opt
查看已有庫(kù)
mysql> show databases;
刪除庫(kù)
mysql> drop database gamedb;
Query OK, 0 rows affected (0.00 sec)
[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/
ls: 無(wú)法訪問(wèn)/var/lib/mysql/gamedb/: 沒(méi)有那個(gè)文件或目錄
切換庫(kù)
use 庫(kù)名;
mysql> use mysql;
查看當(dāng)前所在的庫(kù)
mysql> select database();
+---------------+
| database() |
+---------------+
| NULL |
+---------------+
1 row in set (0.00 sec)
查看庫(kù)里已有的表
mysql> show tables;
3.建表(文件)
create table 庫(kù)名.表名(
字段名 字符類型,
字段名 數(shù)值類型,
...
);
mysql> create table gamedb.stu(
-> name char(10),
-> age int
-> );
插入表記錄
insert into 庫(kù)名.表名 values(值列表)
mysql> insert into gamedb.stu values ("jim",23),("tom",21);
查看表記錄
select * from 庫(kù)名.表名;
mysql> select * from stu;
+-------+--------+
| name | age |
+----------+----------+
| jim | 23 |
| tom | 21 |
+----------+----------+
查看表結(jié)構(gòu)
desc 庫(kù)名.表名
mysql> desc gamedb.stu;
刪除表記錄
delete from 庫(kù)名.表名
mysql> delete from gamedb.stu;
Query OK, 2 rows affected (0.03 sec)
mysql> select * from stu;
Empty set (0.00 sec)
刪除表
drop table 庫(kù)名.表名
mysql> drop table gamedb.stu;
Query OK, 0 rows affected (0.24 sec)
mysql> show tables;
Empty set (0.00 sec)
mysql數(shù)據(jù)類型
支持的數(shù)據(jù)類型
數(shù)值型:整型,浮點(diǎn)型
整型:根據(jù)存儲(chǔ)數(shù)值的范圍整型分為:
tinyint smallint mediumint int bigint
1個(gè)字節(jié) 2個(gè)字節(jié) 3個(gè)字節(jié) 4個(gè)字節(jié) 8個(gè)字節(jié)
create table t3(age int unsigned); #unsigned 不允許存儲(chǔ)負(fù)數(shù)
浮點(diǎn)型:根據(jù)存儲(chǔ)數(shù)值的范圍分為:
單精度:float (n,m) n表是總位數(shù),m表示小數(shù)位位數(shù)
float(7,2) xxxxx.xx
99999.99
-99999.99
雙精度:double
數(shù)值類型 的寬度 是顯示寬度,不能限制給字段賦值的大小,大小由類型決定
賦值 寬度為節(jié)省空間
寬度不夠時(shí):
默認(rèn)用空格補(bǔ)位
zerofill #寬度不夠用零補(bǔ)位
mysql> create table t24(id int(3) zerofill,age int(5) zerofill);
Query OK, 0 rows affected (0.40 sec)
mysql> insert into t24 values(2,2);
Query OK, 1 row affected (0.16 sec)
mysql> select * from t24;
+----------+------------+
| id | age |
+----------+------------+
| 002 | 00002 |
+---------+------------+
1 row in set (0.00 sec)
mysql> desc t24;
字符型: 定長(zhǎng) 變長(zhǎng) 大文本
char varchar blob/text
定長(zhǎng)長(zhǎng)度固定 空間換時(shí)間
變長(zhǎng)長(zhǎng)度隨字符大小而改變 時(shí)間換空間
日期時(shí)間型:
年 yesr YYYY 1901-2155 可以使用兩位數(shù)字給yesr賦值
日期 date YYYYMMDD
時(shí)間 time HHMMSS
日期時(shí)間
datetime YYYYMMDDHHMMSS 如果不給其賦值 默認(rèn)賦值NULL
timestamp YYYYMMDDHHMMSS 如果不給其賦值 默認(rèn)自動(dòng)賦值當(dāng)前時(shí)間
使用時(shí)間函數(shù)給日期賦值
now() #當(dāng)前時(shí)間
mysql> select now();
+-------------------------------------+
| now() |
+-------------------------------------+
| 2017-12-20 03:49:11 |
+-------------------------------------+
1 row in set (0.00 sec)
year() 指定日期中的年
mysql> select year( now());
month() 指定時(shí)間中的月份
day() 指定時(shí)間中的日子
date() 指定時(shí)間中的日期
time() 指定時(shí)間中的時(shí)刻
insert into t10 values ('tom',19,year(now()), time(now()),date(now()),now());
枚舉型:字段的值只能在列舉的范圍內(nèi)選擇
字段名 enum(值列表) 單選
字段名 set (值列表) 多選
字段約束條件
設(shè)置字段約束條件:作用
Null 允許未空,默認(rèn)設(shè)置
NOT NULL 不允許為空
Key 索引類型
Default 設(shè)置默認(rèn)值,缺省為NULL
mysql> create table t13 (
-> name char(10) not null,
-> age tinyint default 23,
-> sex enum('man','woman') not null default 'man'
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> desc t13;
修改表結(jié)構(gòu)
alter table 表名 執(zhí)行動(dòng)作;
添加新字段
add 字段 類型(寬度)約束條件; #添加末尾
add 字段 類型(寬度)約束條件 first; #添加開(kāi)頭
add 字段 類型(寬度)約束條件 after 字段名; #添加到某個(gè)字段后
mysql> alter table t11 add name char(10) first;
mysql> alter table t11 add mail varchar(30) default 'stu@tedu.cn';
mysql> alter table t11 add class char(10) default 'nsd1709' after name;
刪除字段
drop 字段名
mysql> alter table t11 drop party,drop mail;
不修改的地方照抄原有的
修改字段類型
modify 字段 類型(寬度)約束條件;
mysql> alter table t11 modify name varchar(15) ;
修改字段名
change 源字段名 新字段名 類型(寬度)約束條件;
mysql> alter table t11 change meetting party timestamp not null;
修改表名
mysql> alter table t11 rename stuinfo;
mysql> use information_schema;
過(guò)濾某個(gè)數(shù)據(jù)庫(kù)的約束
mysql> select * from table_constraints where table_schema='數(shù)據(jù)庫(kù)名';