unsigned int
auto_increment 自動增長
not null 非空
tinyint(m)
float(m,n) m 總長 n 小數點后的位數
mysqld --console 開始
Mysqld (start)
Mysqld-nt
CREATE DATABASE db_name 創建數據庫
USE db_name(選取數據庫)
Mysql 管理
mysqladmin
Show databases 查看
mysql -h(hostname) -u(username) -p(要求輸入密碼的)
quit 退出
1、show tables
2、mysqladmin shutdown 關閉
3、mysql --h=hostname --u=username --p
4、DROP DATABASE db_name 刪除
5、DROP TABLE 表的名字
6、CREATE TABLE 表的名字 SELECT (要選擇的列) FROM 原來的表 WHERE condition;
7、CREATE TABLE new_table SELECT id,name,sex FROM
8、INSERT INTO 表的名字 VALUES 跟的值(‘列的值’,‘列的值’);
9、drop database name(數據庫的名字) 刪除數據庫
10、CREATE TABLE name (id int,name varchar(20),sex ENUM('male','female'))創建表
11、DESCRIBE TABLE(表的名字)
12、ALTER TABLE name(表的名字)ADD PRIMARY KEY (index_col_name); 建表的主鍵
13、ALTER TABLE name(表的名字)MODIFY id int(11) unsuptaigned(非負) not null(非空) auto_intcrement(自動增長);
14、select * from 表的名字;
SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5;
15、update 表的名字 set 列的名字='數據' where id=號碼; 修改和增加數據
16、ALTER TABLE 表的名字 ADD 列名 類型 ; 增加一個列
17、LOAD DATA INFILE ‘路徑,文件名’INTO TABLE 表名; 導入數據
修改記錄:UPDATE table_name SET column_name_1=column_value_1[,column_name2=column_value2] [WHERE where_statement] [LIMIT n];
例: UPDATE xscj SET YuWen=80 WHERE id=101 (int型不要‘’,char 型要’‘)
刪除記錄:DELETE FROM table_name [WHERE where_statements][LIMIT n];
DELETE FROM xscj WHERE id=101;
CREATE TABLE 表的名字 SELECT 要選擇的列或* FROM 原表名 WHERE id=..(只提取一條記錄)默認為全部
INSERT INTO 表名 VALUES (與表對應的數值);插入多個值(),()SELECT * FROM 表名;
有些關鍵字可以用``標起來 例如:`all`
18、創建索引:
CREATE TABLE 表名 (id init,name varchar(20)) INDEX idx_id(id) PRIMARY KEY id
CREATE INDEX part_of_name ON customer (name(10));
19、ALTER TABLE 表名 ADD INDEX idx_id (id,name); 修改索引;
20、ALTER TABLE 表名 DROP INDEX idx_id(索引的名字) 刪除索引
order by (DESC(降序)) 排序
select TOP 3(前三行) student_id,name from xscj where student_id between 123 AND 1323 order by students_id ,name desc
SELECT student_id , count(*) AS ss FROM xscj GROUP BY student_id;
count(*) 記錄行數
ab[123].com=ab1.com or ab2.com or ab3.com
mysql mytest < c:\study.txt 導入文件
臨時表
可用CREATE TEMPORARY TABLE 來創建臨時表,這些表在會話結束時會自動消失。使用臨時表很方便,
因為不必費心發布DROP TABLE 語句明確地刪除這些表,而且如果您的會話不正常結束,這些表不會滯留
。例如,如果某個文件中有一個用mysql運行的查詢,您決定不等到其結束,那么可以在其執行的中途停
止這個查詢,而且毫無問題,服務器將刪除所創建的任意臨時表。在舊版的MySQL中,沒有真正的臨時表
,除了您在自己的頭腦中認為它們是臨時的除外。對于需要這樣的表的應用程序,必須自己記住刪除這些
表。如果忘了刪除,或在前面使其存在的客戶機中出現錯誤時,這些表在有人注意到并刪除它們以前會一
直存在。臨時表僅對創建該表的客戶機可見。
DROP TABLE tb1_name1,tb1_name2,......
? ? 其次,如果不能肯定一個表是否存在,但希望如果它存
在就刪除它。那么可在此語句中增加IF EXISTS。
SELECT a,b,a+b INTO OUTFILE 'c:/result.text' FIELDS TERMINATED BY "" LINES TERMINATED BY "\n" FROM test_table;
SELECT user,MAX(salary) AS sum FROM users group by user HAVING sum>10 LIMIT 95,-1(95到最后);
@c:\study.sql 可以查看系統
SELECT * FROM table1 USE INDEX (key1,key2) WHERE key1=1 AND key2=2 AND key3=3;
主鍵與負鍵的聯系用 references
mysql數據庫的授權
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶名@localhost
identified by 密碼;
如:新建一個用戶帳號以便可以訪問數據庫,需要進行如下操作:
mysql> grant usage(沒有權限)
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就創建了一個新用戶叫:testuser,這個用戶只能從localhost連接到數據庫并可以連接到test 數據庫。下一步,我們必須指定testuser這個用戶可以執行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個test數據庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢操作。現在我們結束操作并退出MySQL客戶程序:
mysql> exit
Bye
登陸:mysql -u 用戶名 -p
刪除用戶 delete from user where user='名字1' [or user='名字2'];
user 數據庫是系統的
運行腳本:
修改密碼:
USE mysql;
UPDATE user SET Password(字段名)=PASSWORD(一個函數)('new_password') WHERE user='root'
FLUSH PRIVILEGES;(你必須告訴服務器再次讀入授權表)
Mysqldump 數據庫備份
mysqldump -u -p 數據庫名[表名]>(重定向)
mysqldump <