mysql4操作

操作

1基本操作

括号

create table MyClass(

> id int(4) not null primary key auto_increment,

> name char(20) not null,

> sex int(4) not null default '0',

> degree double(16,2));

 

//values

insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

 

//set

update MyClass set name='Mary' where id=1;

3授权

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以及

grant all on mydb.* to NewUserName@HostName identified by "password" ;

grant usage on *.* to NewUserName@HostName identified by "password";

grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";

grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";

2删除

、删除数据库

命令:drop database <数据库名>

例如:删除名为 xhkdb的数据库

mysql> drop database xhkdb;

、删除表

命令:drop table <表名>

例如:删除表名为 MyClass 的表

mysql> drop table MyClass;

 

3查看

、查看当前使用的数据库

mysql> select database();

 

、获取表结构

命令: desc 表名

或者:show columns from `pit_categorys`;

 

4导出

.导出整个数据库
mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
A:常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source wcnc_db.sql

B:使用mysqldump命令

mysqldump -u username -p dbname < filename.sql

C:使用mysql命令

mysql -u username -p -D dbname < filename.sql

 

 

 

 

5修改表结构

、在表中增加字段:

命令:alter table 表名 add字段 类型 其他; 
例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0 
mysql> alter table MyClass add passtest int(4) default '0'

alter table dbname add column userid int(11) not null primary key auto_increment

更改表名:

命令:rename table 原表名 to 新表名; 

例如:在表MyClass名字更改为YouClass 

mysql> rename table MyClass to YouClass

 

6类型`

DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 

7

.子查询 
子查询可以理解为 套查询.子查询是一个SELECT语句
1 表达式的值与子查询返回的单一值做比较 
语法
表达式 comparision [ANY|ALL|SOME](子查询) 
说明: 
ANY 和SOME谓词是同义词,与比较运算符(=,<,>,<>,<=,>=)一起使用.返回一个布尔值True或 False.ANY的意思是,表达式与子查询返回的一系列的值逐一比较,只要其中的一次比较产生True结果,ANY测试的返回 True值(既WHERE子句的结果),对应于该表达式的当前记录将进入主查询的结果中.ALL测试则要求表达式与子查询返回的一系列的值的比较都产生 True结果,才回返回True值
:主查询返回单价比任何一个折扣大于等于25%的产品的单价要高的所有产品 
SELECT * FROM Products 
WHERE UnitPrice>ANY 
(SELECT UnitPrice FROM[Order Details] WHERE Discount>0.25)

2 检查表达式的值是否匹配子查询返回的一组值的某个值 
语法: 
[NOT]IN(子查询) 
例:返回库存价值大于等于1000的产品. 
SELECT ProductName FROM Products 
WHERE ProductID IN 
(SELECT PrdoctID FROM [Order DEtails
WHERE UnitPrice*Quantity>= 1000)

3检测子查询是否返回任何记录 
语法: 
[NOT]EXISTS (子查询) 
例:用EXISTS检索英国的客户 
SELECT ComPanyName,ContactName 
FROM Orders 
WHERE EXISTS 
(SELECT * 
FROM Customers 
WHERE Country = ‘UK’ AND 
Customers.CustomerID= Orders.CustomerID)

 

 

 

 

用户管理

 

创建用户

    create user '用户名'@'IP地址' identified by '密码';

删除用户

    drop user '用户名'@'IP地址';

修改用户

    rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;

修改密码

    set password for '用户名'@'IP地址' = Password('新密码')

 

特别的:group by 必须在where之后,order by之前

 

posted @ 2017-11-28 11:21  克维拉  阅读(192)  评论(0编辑  收藏  举报