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.导入数据库

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、进入MySQLmysql -u root –pmysql –h 192.168.88.134 -uroot p直接输入安装时的密码即可。此时的提示符是:mysql>

 

2、修改密码 set password for 'root'@'localhost'=password('123456');

mysqladmin -uroot -password ab12

mysqladmin -uroot -pab12 password djg345

 

3、退出MySQLquitexit

 

三、           库操作

 

1、、创建数据库

命令:create database <数据库名>

例如:建立一个名为xhkdb的数据库

drop database if exists school;

mysql> create database xhkdb;

 

2、显示所有的数据库

命令:show databases (注意:最后有个s

mysql> show databases;

 

3、删除数据库

命令:drop database <数据库名>

mysql> drop database xhkdb;

 

4、连接数据库

命令: use <数据库名>

mysql> use xhkdb;

 

5、查看当前使用的数据库

mysql> select database();

 

6、当前数据库包含的表信息:

mysql> show tables;

 

四、           表操作

 

1、建表

命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);

mysql> 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));

 

2、获取表结构

命令: desc 表名,或者show columns from 表名

mysql>DESCRIBE MyClass

mysql> desc MyClass;

mysql> show columns from MyClass;

 

3、删除表

命令:drop table <表名>

mysql> drop table MyClass;

 

4、插入数据

命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 1 )[, ( n )]

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

 

5、查询表中的数据

 

1)、查询所有行

命令: select <字段1,字段2...> from < 表名 > where < 表达式 >

mysql> select * from MyClass;

 

2)、查询前几行数据

mysql> select * from MyClass order by id limit 0,2;或者mysql> select * from MyClass limit 0,2;

 

6、删除表中数据

命令:delete from 表名 where 表达式

mysql> delete from MyClass where id=1;

 

7、修改表中数据

命令:update 表名 set 字段=新值, where 条件

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

 

8、在表中增加字段:

命令:alter table 表名 add字段类型其他;

mysql> alter table MyClass add passtest int(4) default '0'

 

9、更改表名:

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

mysql> rename table MyClass to YouClass;

 

10、更新字段内容

update 表名 set 字段名 = 新内容

update Myclass set passtest = 100;

update 表名 set 字段名 = replace(字段名,'旧内容','新内容');

update Myclass set passtest = replace(passgo,60,100 );

 

11、文章前面加入4个空格

update article set content=concat('  ',content);

 

12mysql数据库的授权

命令: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数据库中的表执行SELECTINSERTDELETE以及UPDATE查询操作。

 

13、用文本方式将数据装入数据库表中(例如D:/mysql.txt

mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

 

五、           其他技巧

1、将文本数据转到数据库中

文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.

例:

rose 深圳二中 1976-10-10

mike 深圳一中 1975-12-23

数据传入命令 load data local infile "文件名" into table 表名;

注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库

 

2SELECT语句的完整语法为:

SELECT[ALL|DISTINCT|DISTINCTROW|TOP]

{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}

FROM tableexpression[,…][IN externaldatabase]

[WHERE…]

[GROUP BY…]

[HAVING…]

[ORDER BY…]

[WITH OWNERACCESS OPTION]

说明:

用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。

1 FROM子句

FROM 子句指定了SELECT语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由 INNER JOINLEFT JOIN RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。

例:下列SQL语句返回所有有定单的客户:

SELECT OrderID,Customer.customerID

FROM Orders Customers

WHERE Orders.CustomerID=Customers.CustomeersID

 

2 ALLDISTINCTDISTINCTROWTOP谓词

(1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL

例:SELECT ALL FirstName,LastName

FROM Employees

(2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。

(3) DISTINCTROW 如果有重复的记录,只返回一个

(4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比)

例:返回5%定货额最大的定单

SELECT TOP 5 PERCENT*

FROM [ Order Details]

ORDER BY UnitPrice*Quantity*(1-Discount) DESC

 

3 AS 子句为字段取别名

如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。

例:返回FirstName字段取别名为NickName

SELECT FirstName AS NickName ,LastName ,City

FROM Employees

例:返回新的一列显示库存价值

SELECT ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock

FROM Products

 

WHERE 子句指定查询条件

 

例:返回961月的定单

SELECT OrderID, CustomerID, OrderDate

FROM Orders

WHERE OrderDate>#1/1/96# AND OrderDate<#1/30/96#

注意:

Mcirosoft JET SQL 中,日期用‘#’定界。日期也可以用Datevalue()函数来代替。在比较字符型的数据时,要加上单引号’’,尾空格在比较中被忽略。

例:

WHERE OrderDate>#96-1-1#

也可以表示为:

WHERE OrderDate>Datevalue(‘1/1/96’)

使用 NOT 表达式求反。

例:查看9611日以后的定单

WHERE Not OrderDate<=#1/1/96#

2 范围(BETWEEN NOT BETWEEN

BETWEEN AND…运算符指定了要搜索的一个闭区间。

例:返回961月到962月的定单。

WHERE OrderDate Between #1/1/96# And #2/1/96#

3 列表(IN NOT IN

IN 运算符用来匹配列表中的任何一个值。IN子句可以代替用OR子句连接的一连串的条件。

例:要找出住在 LondonParisBerlin的所有客户

SELECT CustomerID, CompanyName, ContactName, City

FROM Customers

WHERE City In(‘London’,’ Paris’,’ Berlin’)

4 模式匹配(LIKE)

LIKE运算符检验一个包含字符串数据的字段值是否匹配一指定模式。

LIKE运算符里使用的通配符

通配符含义

任何一个单一的字符

* 任意长度的字符

# 0~9之间的单一数字

[字符列表] 在字符列表里的任一值

[!字符列表] 不在字符列表里的任一值

- 指定字符范围,两边的值分别为其上下限

例:返回邮政编码在(171555-0000到(171555-9999之间的客户

SELECT CustomerID ,CompanyName,City,Phone

FROM Customers

WHERE Phone Like ‘(171)555-####’

LIKE运算符的一些样式及含义

样式含义不符合

LIKE A* A后跟任意长度的字符 Bc,c255

LIKE’5’ 5*5 555

LIKE5?5 55之间有任意一个字符 55,5wer5

LIKE5##5 52355005 5kd5,5346

LIKE[a-z] a-z间的任意一个字符 5,%

LIKE[!0-9]0-9间的任意一个字符 0,1

LIKE’[[]’ 1,*

.ORDER BY子句排序结果

ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL语句的最后。

ORDER子句中定义了多个字段,则按照字段的先后顺序排序。

例:

SELECT ProductName,UnitPrice, UnitInStock

FROM Products

ORDER BY UnitInStock DESC , UnitPrice DESC, ProductName

ORDER BY 子句中可以用字段在选择列表中的位置号代替字段名,可以混合字段名和位置号。

例:下面的语句产生与上列相同的效果。

SELECT ProductName,UnitPrice, UnitInStock

FROM Products

ORDER BY 1 DESC , 2 DESC,3

 

备份数据库:(命令在DOS\mysql\bin目录下执行)

mysqldump --opt school>school.bbb

注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。

 

你可能感兴趣的:(mysql应用)