Mysql數據庫基礎

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下公司。MySQL 最流行的關系型數據庫管理系統;
MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQLAB公司,在2008年1月16號被Sun公司收購。MySQL被廣泛地應用在 Internet,上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了 MySQL作為網站數據庫。與其他的大型數據庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本;


875796-20160817223356796-2033052989.png
timg.jpg

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 節約空間,降低效率
    舉例:
    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'

建立數據庫

創建數據庫:字符編碼統一選擇‘utf8_general_ci’,防止中文亂碼;
字段根據實際情況選擇,字符編碼可默認(數據庫是utf8);
字段名字規定名字由英文、數字或下劃線組成,且只能以英文開頭,全部使用小寫。雖然可以用中文,但非常不建議。
每個數據表應該都要有一個主鍵;
主鍵:在數據表,該列字段是唯一標識(該值在數據表沒有重復)該行的字段,稱為主鍵,每個數據表,最多只能有1個主鍵,一般一個自動增加的整型類型字段;

Mysql常用操作命令

操作技巧:
① 如果你打命令時,回車后發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成幾行來打,完后用分號作結束標志就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的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
3、創建一個數據庫mydatabase

mysql> create database mydatabase;

4、選擇你所創建的數據庫

mysql> use mydatabase; (按回車鍵出現Database changed 時說明操作成功!)

5、查看當前數據庫中存在什么表

mysql> show tables;

6、創建一個數據庫表
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,如果發現報錯嘗試連接到 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、創建新用戶
通過root用戶登錄之后創建

//創建新用戶,用戶名為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的系統權限相關表,否則會出現拒絕訪問,還有一種方法,就是重新啟動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的系統權限相關表方可生效 

任務

使用navicat客戶端軟件創建一個人員信息表;
使用mysql命令創建一個人員信息表;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.MySQL數據庫 2.SQL語句 第一節課 ###1(MySQL數據庫)數據庫概念.avi 5...
    碼了個農啵閱讀 1,242評論 1 16
  • 1.1-認識MySQL 什么是數據庫?計算機處理和存儲的一切信息都是數據。數據庫是計算機系統中一種用于存取數據的程...
    LuckyPandaLee閱讀 2,186評論 0 12
  • mysql 什么是數據(data):硬盤中存的東西...... 數據庫:數據庫是存儲在一起的相關數據的集合,這些數...
    I踏雪尋梅閱讀 268評論 0 1
  • 1.MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下產品。My...
    黃花菜已涼閱讀 4,600評論 3 60
  • 回到老家已經很多天,這幾天過得很充實,像在學校里一樣。每天都有干不完的事,雖然我不干也行但我想我有義務去做,作為一...
    壹工滿閱讀 88評論 0 0