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 退出
show tables
mysqladmin shutdown 关闭
mysql --h=hostname --u=username --p
DROP DATABASE db_name 删除
DROP TABLE 表的名字
CREATE TABLE 表的名字 SELECT (要选择的列) FROM 原来的表 WHERE condition;
CREATE TABLE new_table SELECT id,name,sex FROM
INSERT INTO 表的名字 VALUES 跟的值(‘列的值’,‘列的值’);
drop database name(数据库的名字) 删除数据库
CREATE TABLE name (id int,name varchar(20),sex ENUM('male','female'))创建表
DESCRIBE TABLE(表的名字)
ALTER TABLE name(表的名字)ADD PRIMARY KEY (index_col_name); 建表的主键
ALTER TABLE name(表的名字)MODIFY id int(11) unsuptaigned(非负) not null(非空) auto_intcrement(自动增长);
select * from 表的名字;
update 表的名字 set 列的名字='数据' where id=号码; 修改和增加数据
ALTER TABLE 表的名字 ADD 列名 类型 ; 增加一个列
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`
创建索引:
CREATE TABLE 表名 (id init,name varchar(20)) INDEX idx_id(id) PRIMARY KEY id
ALTER TABLE 表名 ADD INDEX idx_id (id,name); 修改索引;
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 ;
Query OK, 0 rows affected (0.15 sec)
此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO ;
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