標籤:ons column java 啟用 school ref 管理系統 mod str
MySQL
MySQL是一種關聯式資料庫管理系統,是一種開源軟體。可搭配PHP和Apache可以有更好的效能,也可以工作在眾多的平台上。Orcale是一個資料庫建立多個使用者,MySQL是一個使用者建立多個資料庫。
安裝注意事項:
連接埠:3306;預設使用者:root;字元集:設定為gbk或者utf-8;
安裝時可以啟用遠程登陸,建立匿名使用者;
可以安裝圖形化介面,方便操作
MySQL列的類型:
數實值型別:
smallint():佔2個位元組
int():佔4個位元組,integer是int的同義字,也是佔4個位元組
bigint():佔8個位元組
float(x,y):佔4個位元組 其中x表示修飾數值一共x位,y表示小數點後一共y位
double(x,y):8個位元組 x,y和float用法一樣
字串類型:
char():固定字串的長度, sex char(2),不同於orcale中sex char(3),MySQL中子一個子佔2個位元組
varchar():可變長度的字串長度,不同於orcale中varchar2()表示可變長度的字串
varchar():使用起來比較靈活,char是處理速度比較快。
日期/時間類型:
date:‘YYYY-MM-DD‘,或者‘YYYY/MM/DD‘,不同於orcale中日期的格式是‘1-12月-2018‘
datetime:‘YYYY-MM-DD HH:MM:SS‘詳細日期,包括時分秒
timestamp:‘YYYY-MM-DD HH:MM:SS‘ 時間戳記
datetime和timestamp的比較(瞭解即可,一般用datetime):
相同點:datetime和timestamp列的顯示格式相同,顯示的格式都是固定在19個字元,格式為:YYYY-MM-DD HH:MM:SS
不同點:範圍不同。datetime格式顯示和檢索DATETIME值,支援的範圍是‘1000-01-01 00:00:00‘到‘9999-12-31 23:59:59‘TIMESTAMP值不能早於1970或晚於2037
儲存不同。datetime:8個位元組儲存,實際格式是date格式,與時區不轉換;timestamp:4個位元組儲存,以UTC格式儲存,並且有時區的轉換,儲存時對當前時區進行轉換,檢索時再轉回當前時區。
主鍵自增:auto_increment,不同於orcale使用sequence。
MySQL文法:
1.資料定義語言 (Data Definition Language)(create,drop,alter等語句)
create database school; //建立一個資料庫
use school; //指定預設的資料庫進行操作,進行資料操作前提必須指定預設的資料庫
create table student(); //在預設資料庫下建立一個學生資訊表
show columns from student; //顯示一個給定表中各列的資訊,顯示自定表的結構
show tables; //展示預設資料庫下所有的表
show databases; //展示所有的資料庫
show create database //顯示用於給定資料庫create database語句,也可以使用 show create schema;
show create table student; //顯示建表sql語句,顯示指定表結構
drop table student; //刪除student表
drop database school //刪除school資料庫
2.資料查詢語言(select語句)
select * from student; //查詢student表中的資訊
select * from student where sno > 5 and sex = ‘男‘
select count(*) from student; //查詢表中資料總行數
desc student; //查看錶的結構
3.資料操作語言(insert,delete,update等語句) 針對的是表中的資料
insert into student values(); //跟Orcale相似,都是在表中加資料
insert into student (sno,sname,sex)values (1,‘張三‘,‘男‘)
delete from student where sno = 1; //刪除student表中編號是1的行資料
update student set sname = ‘lisi‘ where sno = 3; //將student表中編號是3的行資料中的sname 覆蓋為‘lisi‘
4.資料控制語言(grant,revoke,commit,rollback等語句) 針對的是資料庫或者表
5.更改表結構語句:
alter table student add email varchar() unique; //給student表添加一列email,條件是:唯一不重複
alter table student add (email varchar(30) unique) //也是給student表增加一列資訊
alter table student rename to student2; //修改表名,student變為student2
alter table student modify email varchar(20) not null; //修改列的屬性
alter table student drop email; //刪除列
6.多表查詢和外部索引鍵關聯:
多表查詢都是建立在多個表之間外部索引鍵關聯的基礎上。沒有外部索引鍵關聯不存在多表查詢
//建立主人和寵物的表,通過mid和masterid外部索引鍵關聯
alter table pet add constraint fk_masterid foreign key(masterid(外鍵)) references master(mid)(關聯鍵)
不同於Orcale中添加時使用constraints,其他的一樣
alter table pet drop foreign key fk_masterid; //刪除外部索引鍵關聯
不同於Orcale中刪除使用alter table pet drop fk_masterid;
mysql> select * from master m join pet p on(m.mid = p.masterid);
+-----+----------+-----+-----+-----------+----------+
| mid | sname | age | pid | pname | masterid |
+--+---------------+-----+------+--------------+-------------+
| 1 | zhangsan | 18 | 1 | luckey | 1 |
| 1 | zhangsan | 18 | 2 | xiaoxiong | 1 |
| 1 | zhangsan | 18 | 4 | luckey | 1 |
| 2 | lisi | 18 | 3 | uzi | 2 |
| 2 | lisi | 18 | 5 | xiaoxiong | 2 |
| 3 | wangwu | 18 | 6 | uzi | 3 |
| 4 | wangwu2 | 18 | 7 | luckey | 4 |
| 4 | wangwu2 | 18 | 8 | xiaoxiong | 4 |
| 4 | wangwu2 | 18 | 9 | uzi | 4 |
+--+--------------+-------+-----+--------------+-------------+
7.分頁語句:
select * from table student limit (start-1)*limit ,limit; //其中start是頁碼,limit是每頁顯示的條數
在MySQL中以help_category為例
select * from help_category limit 11,5; //表示從第12行開始的,5個資料
mysql> select * from help_category limit 11,5;
+------------------+-----------------------------------------------+--------------------+-----+
| help_category_id | name | parent_category_id | url |
+------------------+-----------------------------------------------+--------------------+-----+
| 12 | Encryption Functions | 39 | |
| 13 | LineString properties | 35 | |
| 14 | Miscellaneous Functions | 39 | |
| 15 | Logical operators | 39 | |
| 16 | Functions and Modifiers for Use with GROUP BY | 36 | |
+------------------+-----------------------------------------------+--------------------+-----+
8.匯入和匯出
方法1(圖形介面操作):直接對錶進行操作,選中資料庫---->右擊選擇 轉儲SQL檔案----->選擇地址儲存sql檔案;匯入時選中要匯入的資料庫---->右擊選擇 運行SQL檔案---->匯入相應的sql檔案。
方法2(命令列操作):在DOS命令下操作
匯出:mysqldump -uroot -proot 資料庫名 > 目錄下的sql檔案(d:\school.sql) //到處整個資料庫
mysqldump -uroot -proot 資料庫名 表名 >目錄下的sql檔案 //只到處一個表
匯入:mysql -root -proot 資料庫名 < 目錄下的sql檔案 //一般使用這種
mysql >source 目錄下的sql檔案
JavaSE基礎篇—MySQL基礎知識點