MYsql 语句
来源:互联网 发布:vb程序设计免费版下载 编辑:程序博客网 时间:2024/04/28 12:06
3 / 29
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO mailto:monty@"" IDENTIFIED BY 'something' WITH GRANT OPTION; 删除授权:
mysql> revoke all privileges on *.* from mailto:root@""; mysql> delete from user where user="root" and host="%"; mysql> flush privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ' passwd' 重命名表:
mysql > alter table t1 rename t2; mysqldump 备份数据库
shell> mysqldump -h host -u root -p dbname >dbname_backup.sql 恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql 如果只想卸出建表指令,则命令如下:
shell> mysqladmin -u root -p -d databasename > a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下: shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢? mysqldump -T./ phptest driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql 中存放有查 询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中, mysql > mysql -h myhost -u root -p Mysql5.0支持的字符集
MySQL中的字符集控制做得比较细,可以分为数据库级,表级, 字段级(这一点和ORACLE不同)。我上次改的字符集是数据库级的,对表sysuser没有影响,所以出现了改了字符集却一样无法插入中文的情况。
4 / 29
Drop TABLE IF EXISTS `firstdb`.`users`; Create TABLE `firstdb`.`users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(40) default NULL, `birthday` date default NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
编译 MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
安装 MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
启动 mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的;
此时 character_set_server 被设定为这个默认的字符集;
当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为 character_set_server;
当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
这个字符集就是数据库中实际存储数据采用的字符集,mysqldump 出来的内容就是这个字符集下的;Query Browser1.1 对中文输入的支持太差劲了,可以用notebook写好后,再copy过去执行
update firstdb.users set username='以' where id=3;
MYSQL 常用命令 1.导出整个数据库
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.导入数据库
5 / 29
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
一、启动与退出
1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入 安装时的密码即可。此时的提示符是:mysql>
2、退出MySQL:quit或exit
二、库操作 1、、创建数据库
命令:create database <数据库名> 例如:建立一个名为xhkdb的数据库 mysql> create database xhkdb; 2、显示所有的数据库
命令:show databases (注意:最后有个s) mysql> show databases; 3、删除数据库
命令:drop database <数据库名> 例如:删除名为 xhkdb的数据库 mysql> drop database xhkdb; 4、连接数据库 命令: use <数据库名>
例如:如果xhkdb数据库存在,尝试存取它: mysql> use xhkdb;
屏幕提示:Database changed 5、查看当前使用的数据库 mysql> select database(); 6、当前数据库包含的表信息:
8 / 29
(1)在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
这样,就在表dbname中添加了一个字段userid,类型为int(11)。 7.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 Bye9!
1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> Create DATABASE MYSQLDATA; 3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构:
mysql> DESCRIBE MYTABLE;
9 / 29
7:往表中加入记录
mysql> insert into MYTABLE values ("hyq","M"); 8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表
mysql>drop TABLE MYTABLE; 11:清空表
mysql>delete from MYTABLE; 12:更新表中数据
mysql>update MYTABLE set sex="f" where name='hyq';
以下是无意中在网络看到的使用MySql的管理心得,
在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用 net start mysql命令启动。而Linux中启动时可用"/etc/rc.d/init.d/mysqld start"命令,注意启动者应具有管理员权限。
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全 隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除 、 root帐户设置密码,可用如下命令进行: use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root'; 如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段, 在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql -uroot -p;
mysql -uroot -pnewpassword; mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;
上面命令参数是常用参数的一部分,详细情况可参考文档。此处的mydb是要登录的 数据库的名称。
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用 root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的 提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据
10 / 29
插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的 ,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应 的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下 :
grant all on mydb.* to NewUserName@HostName identified by "password" grant usage on *.* toNewUserName@HostName identified by "password"; grant select,insert,update on mydb.* toNewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH
GRANT OPTION选项。而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。对于那些已经不用的用户应给予清除 ,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段,也可
以使用REVOKE操作。
下面给出本人获得的对常用权限的解释:
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。 RELOAD: 重载访问控制表,刷新日志等。 SHUTDOWN: 关闭MySQL服务。 数据库/数据表/数据列权限:
Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。 Delete: 删除表的记录。 Drop: 删除数据表或数据库。 INDEX: 建立或删除索引。 Insert: 增加表的记录。 Select: 显示/搜索表的记录。 Update: 修改表中已存在的记录。 特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。
---------------------
18 / 29
LEFT JOIN table2 ON table1.a=table2.c 1 连接查询中使用Iif函数实现以0值显示空值 Iif表达式: Iif(IsNull(Amount,0,Amout)
例:无论定货大于或小于¥50,都要返回一个标志。 Iif([Amount]>50,?Big order?,?Small order?) 五. 分组和总结查询结果
在SQL的语法里,GROUP BY和HAVING子句用来对数据进行汇总。GROUP BY子句指明 了按照哪几个字段来分组,而将记录分组后,用HAVING子句过滤这些记录。 GROUP BY 子句的语法 Select fidldlist FROM table Where criteria
[GROUP BY groupfieldlist [HAVING groupcriteria]]
注:Microsoft Jet数据库 Jet 不能对备注或OLE对象字段分组。 GROUP BY字段中的Null值以备分组但是不能被省略。 在任何SQL合计函数中不计算Null值。
GROUP BY子句后最多可以带有十个字段,排序优先级按从左到右的顺序排列。 例:在'WA'地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数目大于1人 的所有头衔。
Select Title ,Count(Title) as Total FROM Employees Where Region = 'WA' GROUP BY Title HAVING Count(Title)>1 JET SQL 中的聚积函数 聚集函数 意义 SUM ( ) 求和 AVG ( ) 平均值
COUNT ( ) 表达式中记录的数目 COUNT (* ) 计算记录的数目 MAX 最大值 MIN 最小值 VAR 方差 STDEV 标准误差 FIRST 第一个值 LAST 最后一个值
六. 用Parameters声明创建参数查询
19 / 29
Parameters声明的语法:
PARAMETERS name datatype[,name datatype[, …]] 其中name 是参数的标志符,可以通过标志符引用参数. Datatype说明参数的数据类型.
使用时要把PARAMETERS 声明置于任何其他语句之前. 例:
PARAMETERS[Low price] Currency,[Beginning date]datatime Select orderID ,OrderAmount FROM orders
Where orderAMount>[low price] AND orderDate>=[Beginning date] 七. 功能查询
所谓功能查询,实际上是一种操作查询,它可以对数据库进行快速高效的操作.它以 选择查询为目的,挑选出符合条件的数据,再对数据进行批处理.功能查询包括更新 查询,删除查询,添加查询,和生成表查询. 1 更新查询
Update子句可以同时更改一个或多个表中的数据.它也可以同时更改多个字段的值. 更新查询语法: Update 表名 SET 新值 Where 准则
例:英国客户的定货量增加5%,货运量增加3% Update OEDERS
SET orderAmount = orderAmount *1.1 Freight = Freight*1.03 Where ShipCountry = 'UK' 2 删除查询
Delete子句可以使用户删除大量的过时的或冗于的数据. 注:删除查询的对象是整个记录. Delete子句的语法: Delete [表名.*] FROM 来源表 Where 准则
例: 要删除所有94年前的定单 Delete * FROM orders
Where orderData<#94-1-1#
20 / 29
3 追加查询
Insert子句可以将一个或一组记录追加到一个或多个表的尾部. INTO 子句指定接受新记录的表
valueS 关键字指定新记录所包含的数据值. Insert 子句的语法:
INSETR INTO 目的表或查询(字段1,字段2,…) valueS(数值1,数值2,…) 例:增加一个客户
Insert INTO Employees(FirstName,LastName,title) valueS('Harry','Washington','Trainee') 4 生成表查询
可以一次性地把所有满足条件的记录拷贝到一张新表中.通常制作记录的备份或副 本或作为报表的基础.
Select INTO子句用来创建生成表查询语法: Select 字段1,字段2,… INTO 新表[IN 外部数据库] FROM 来源数据库 Where 准则
例:为定单制作一个存档备份 Select *
INTO ordersArchive FROM orders 八. 联合查询
UNION运算可以把多个查询的结果合并到一个结果集里显示. UNION运算的一般语法:
[表]查询1 UNION [ALL]查询2 UNION … 例:返回巴西所有供给商和客户的名字和城市 Select CompanyName,City FROM Suppliers Where Country = 'Brazil' UNION
Select CompanyName,City FROM Customers Where Country = 'Brazil' 注:
缺省的情况下,UNION子句不返回重复的记录.如果想显示所有记录,可以加ALL选项 UNION运算要求查询具有相同数目的字段.但是,字段数据类型不必相同.
25 / 29
mysql> update user set password=password(”xueok654123″) where user=‟root‟; mysql> flush privileges //刷新数据库 mysql>use dbname; 打开数据库: mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); 3、grant
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql> grant all privileges on *.* to user@localhost identified by ‟something‟ with 增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ‟something‟ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO mailto:monty@”” IDENTIFIED BY ‟something‟ WITH GRANT OPTION; 删除授权:
mysql> revoke all privileges on *.* from mailto:root@””; mysql> delete from user where user=”root” and host=”%”; mysql> flush privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by „ passwd‟ 重命名表:
mysql > alter table t1 rename t2; 4、mysqldump 备份数据库
shell> mysqldump -h host -u root -p dbname >dbname_backup.sql 恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql 如果只想卸出建表指令,则命令如下:
shell> mysqladmin -u root -p -d databasename > a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下: shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢? mysqldump -T./ phptest driver
26 / 29
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql 中存放有查 询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中: mysql > mysql -h myhost -u root -p database < sql.txt // 启动服务 mysqld --console // 停止服务
mysqladmin -u root shutdown // 登录后使用数据库 mysql mysql -u root -p mysql
mysql -u root -p -h 11.11.11.11 database // 创建数据库
create database db_name [default character set=gbk] // 设置数据库默认字符集
alter databse db_name default character set gbk // 更换数据库 use database test after log on use test
// 创建一个带图像字段的表 create a table mypic to store picture create table mypic (picid int, picname varchar(20), content blob); // 显示表的结构 describe table mypic desc mypic
// 显示当前表的建表语句 show create table table_name // 更改表类型
alter table table_name engine innodb|myisam|memory // 插入一条记录 insert a record
insert into mypic values (1, '第二章', 0x2134545); // 显示当前用户 show current user select user();
// 显示当前用户密码 show current password select password('root');
// 显示当前日期 show current date select now();
27 / 29
// 更改用户密码 change user password
update user set password=password('xxx') where user='root'; // 分配用户权限 grant
grant all privileges on *.* toroot@localhost
grant select,insert,delete,update,alter,create,drop on lybbs.* mailto:tolybbs@"" identified by "lybbs";
grant select,insert,delete,update,alter,create,drop on lybbs.* tolybbs@localhostidentified by "lybbs";
// 在不重启的情况下刷新用户权限 flush privileges flush privileges
// 向表中增加一个主键 add primary key alter table mypic add primary key (picid)
// 修改表结构增加一个新的字段 add a new column userid after picid alter table mypic add column userid int after picid
// 更改列类型,当存储图像过大时,使用默认blob超不过100k alter table userpic change image image longblob; alter table userpic modify image longblob; // 设置默认字符集为gb2312
mysqld --default-character-set=gb2312 // 显示详细信息,包括字符集编码 show full columns from userpic; // 改变表的编码
Alter TABLE userpic CHARACTER SET gb2312; // mysql jdbc连接url 使用中文
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312 // 执行外部脚本 source
MySQL是最受欢迎的开源SQL数据库管理系统,由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,是一家使用了一种成功的商业模式来结合开源价值和方****的第二代开源公司。MySQL是MySQL AB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
28 / 29
- mysql 语句
- MYSQL语句
- MYSQL语句
- mysql语句
- mysql 语句
- mysql-语句
- mysql语句
- MySQL语句
- mysql语句
- MySQL语句
- MySQL语句
- mysql语句
- mysql语句
- mysql 语句
- mysql 语句
- mysql语句
- mysql语句
- mysql 语句
- MTK_LCM调试入门
- 约瑟夫环问题
- [LeetCode] Bitwise AND of Numbers Range
- 打造Sublime 3编辑器
- Objective-C关键字
- MYsql 语句
- Remove Duplicates from Sorted Array II 允许重复2次数组
- jdk6 webservice根据客户端代码编写和调试服务器端代码心得
- Editor类的多选枚举
- ODBC_DAO_OLE DB_ADO
- 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .ne
- 机器学习
- 【Java二十周年】浅谈我和Java的故事
- 第六周项目1-我的数组类