[转发]MYSQL常用指令

    感觉很有必要参考的,就转发过来了:

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                     <



你可能感兴趣的:([转发]MYSQL常用指令)