MySQL是一個關系型數據庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā)哥放,目前屬于 Oracle 旗下公司缰贝。MySQL 最流行的關系型數據庫管理系統(tǒng)寝凌;
MySQL是一個小型關系型數據庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司顽悼,在2008年1月16號被Sun公司收購曼振。MySQL被廣泛地應用在 Internet,上的中小型網站中表蝙。由于其體積小拴测、速度快、總體擁有成本低府蛇,尤其是開放源碼這一特點集索,許多中小型網站為了降低網站總體擁有成本而選擇了 MySQL作為網站數據庫。與其他的大型數據庫例如Oracle汇跨、DB2务荆、SQL Server等相比,MySQL自有它的不足之處穷遂,如規(guī)模小函匕、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度蚪黑。對于一般的個人使用者和中小型企業(yè)來說盅惜,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件忌穿,因此可以大大降低總體擁有成本抒寂;
Mysql數據庫的數據類型
- 整型
bit:范圍為從1到64
tinyint:帶符號的范圍是-128到127。無符號的范圍是0到255
smallint:小的整數掠剑。帶符號的范圍是-32768到32767屈芜。無符號的范圍是0到65535
mediumint:中等大小的整數。帶符號的范圍是-8388608到8388607朴译。無符號的范圍是0到16777215
int或integer:普通大小的整數井佑。帶符號的范圍是-2147483648到2147483647。無符號的范圍是0到4294967295
bigint:大整數帶符號的范圍是-9223372036854775808到9223372036854775807眠寿。無符號的范圍是0到18446744073709551615 - 字符串
char 固定長度字符串 對字符串 0-255 它的特點是犧牲空間躬翁,提高效率
varchar 節(jié)約空間,降低效率
舉例:
char 4 varchar 4
ab[][] ab
text 最大字數數為:65535
tinytext 最大字數數為:255 - 浮點型
float:浮點數
有負號:允許的值是-3.402823466E+38到-1.175494351E-38
無負號:0和1.175494351E-38到3.402823466E+38 - 日期類型
date 日期
支持的范圍為'0000-01-01'到'9999-12-31' MySQL以'YYYY-MM-DD'格式顯示DATE值澜公,但允許使用字符串或數字為DATE列分配值
datetime 日期和時間的組合
支持的范圍是'0000-01-01 00:00:00'到'9999-12-31 23:59:59'
建立數據庫
創(chuàng)建數據庫:字符編碼統(tǒng)一選擇‘utf8_general_ci’姆另,防止中文亂碼喇肋;
字段根據實際情況選擇,字符編碼可默認(數據庫是utf8)迹辐;
字段名字規(guī)定名字由英文蝶防、數字或下劃線組成,且只能以英文開頭明吩,全部使用小寫间学。雖然可以用中文,但非常不建議印荔。
每個數據表應該都要有一個主鍵低葫;
主鍵:在數據表,該列字段是唯一標識(該值在數據表沒有重復)該行的字段仍律,稱為主鍵嘿悬,每個數據表,最多只能有1個主鍵水泉,一般一個自動增加的整型類型字段善涨;
Mysql常用操作命令
操作技巧:
① 如果你打命令時,回車后發(fā)現(xiàn)忘記加分號草则,你無須重打一遍命令钢拧,只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成幾行來打炕横,完后用分號作結束標志就OK源内。
② 你可以使用光標上下鍵調出以前的命令。
1份殿、更改數據庫密碼
mysql>use mysql(選擇名為Mysql的數據庫)膜钓;
mysql>update user set password=password('你設置的密碼') where user = 'root';
mysql>flush privileges; 刷新一下
2卿嘲、顯示數據庫列表
mysql>show databases;
剛開始時才兩個數據庫:mysql和test呻此。mysql庫很重要它里面有MYSQL的系統(tǒng)信息,我們改密碼和新增用戶腔寡,實際上就是用這個庫進行操作。
3掌唾、創(chuàng)建一個數據庫mydatabase
mysql> create database mydatabase;
4放前、選擇你所創(chuàng)建的數據庫
mysql> use mydatabase; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)
5糯彬、查看當前數據庫中存在什么表
mysql> show tables;
6凭语、創(chuàng)建一個數據庫表
create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]);
mysql> create table mytable
->(
-> id int(10) not null primary key auto_increment,
-> name char(20) not null,
-> sex int(1) not null,
-> age int(3) not null
->);
7、獲取表結構
命令: desc 表名撩扒,或者show columns from 表名
mysql> desc mytable;
mysql> show columns from mytable;
8似扔、往數據表中加入記錄
命令:insert into <表名> ( <字段名1>[,..<字段名n > ]) values ( 值1 )[, ( 值n )]
mysql> insert into mytable(name,sex,age) values ("張三","1",'28');
9吨些、查詢表中所有的數據
① 查詢所有行
命令: select <字段1,字段2炒辉,...> from < 表名 > where < 表達式 >
例如:查看表 mytable中所有數據
mysql> select * from mytable;
② 查詢前幾行數據
例如:查看表 mytable中前2行數據
mysql> select * from mytable order by id limit 0,2;
或者:
mysql> select * from mytable limit 0,2;
10豪墅、刪除數據表中某條數據
命令:delete from 表名 where 表達式
mysql> delete from mytable where id=1;
注意:
刪除表中數據時一定要帶上where表達式,否則將是毀滅性的災難黔寇,導致表中數據全部刪除偶器;
11、修改數據表中某條數據
命令:update 表名 set 字段=新值,… where 條件
mysql> update mytable set name='Mary' where id=1;
注意:
修改表中數據時一定要帶上where表達式缝裤,否則將是毀滅性的災難屏轰,導致表中數據全部修改;
12憋飞、在表中增加字段
命令:alter table 表名 add字段 類型 其他;
例如:在表mytable中添加了一個字段email霎苗,類型為char(24),默認值為0;
mysql> alter table mytable add email char(24) default '0';
13榛做、更改數據表名
命令:rename table 原表名 to 新表名;
例如:將表mytable名字更改為user;
mysql> rename table mytable to newtable;
14唁盏、刪除數據表
命令:drop table <表名>
mysql> drop table newtable;
15、刪除數據庫
mysql> drop database mydatabase;
16瘤睹、退出MySQL:quit或exit
phpMyAdmin
打開本地phpMyAdmin升敲,如果發(fā)現(xiàn)報錯嘗試連接到 MySQL 服務器,但服務器拒絕連接轰传。您應該檢查配置文件中的主機驴党、用戶名和密碼,并確認這些信息與 MySQL 服務器管理員所給出的信息一致获茬。
解決方案:
打開安裝目錄wamp\apps\phpmyadmin4.1.14港庄,然后打開config.inc.php 文件,查找文件中的主機恕曲、用戶名和密碼是否正確鹏氧;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '你的數據庫密碼';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
Mysql用戶權限設置
關于mysql的用戶管理,筆記
1佩谣、創(chuàng)建新用戶
通過root用戶登錄之后創(chuàng)建
//創(chuàng)建新用戶把还,用戶名為testuser,密碼為123456 茸俭;
grant all privileges on *.* to testuser@localhost identified by "123456" ;
//設置用戶testuser吊履,可以在本地訪問mysql
grant all privileges on *.* to testuser@localhost identified by "123456" ;
//設置用戶testuser,可以在遠程訪問mysql
grant all privileges on *.* to testuser@"%" identified by "123456" ;
//mysql 新設置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權限相關表调鬓,否則會出現(xiàn)拒絕訪問艇炎,還有一種方法,就是重新啟動mysql服務器腾窝,來使新設置生效
flush privileges ;
2缀踪、設置用戶訪問數據庫權限
//設置用戶testuser居砖,只能訪問數據庫test_db,其他數據庫均不能訪問 驴娃;
grant all privileges on test_db.* to testuser@localhost identified by "123456" ;
//設置用戶testuser奏候,可以訪問mysql上的所有數據庫 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;
//設置用戶testuser托慨,只能訪問數據庫test_db的表user_infor鼻由,數據庫中的其他表均不能訪問 ;
grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" ;
3厚棵、設置用戶操作權限
//設置用戶testuser蕉世,擁有所有的操作權限,也就是管理員 婆硬;
grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION;
//設置用戶testuser狠轻,只擁有【查詢】操作權限 ;
grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION;
//設置用戶testuser彬犯,只擁有【查詢\插入】操作權限 向楼;
grant select,insert on *.* to testuser@localhost identified by "123456" ;
//設置用戶testuser,擁有【查詢\插入\更新\刪除】操作權限 谐区;
grant select,insert,update,delete on *.* to testuser@localhost identified by "123456" ;
//取消用戶testuser的【查詢\插入】操作權限 湖蜕;
REVOKE select,insert ON what FROM testuser;
4、設置用戶遠程訪問權限
//設置用戶testuser宋列,只能在客戶端IP為192.168.1.100上才能遠程訪問mysql 昭抒;
grant all privileges on *.* to testuser@“192.168.1.100” identified by "123456" ;
5、關于root用戶的訪問設置
設置所有用戶可以遠程訪問mysql炼杖,修改my.cnf配置文件灭返,將bind-address = 127.0.0.1前面加“#”注釋掉,這樣就可以允許其他機器遠程訪問本機mysql了坤邪;
//設置用戶root熙含,可以在遠程訪問mysql
grant all privileges on *.* to root@"%" identified by "123456" ;
select host,user from user; //查詢mysql中所有用戶權限
關閉root用戶遠程訪問權限
//禁止root用戶在遠程機器上訪問mysql
delete from user where user="root" and host="%" ;
flush privileges ; //修改權限之后,刷新MySQL的系統(tǒng)權限相關表方可生效
任務
使用navicat客戶端軟件創(chuàng)建一個人員信息表艇纺;
使用mysql命令創(chuàng)建一個人員信息表怎静;