1、 to clear the buffermysql然后发布查询,直接键入题目中的语句: SELECT User,Host FROM mysql.user;应该有类似于下面的结果:+-+-+| User | Host | root | % | admin | localhost | root | localhost |5、在全局选项文件(Unix上位于/etc/f,Windows上位于c:f)中加入下面的几行:mysqluser=rootpassword然后在运行mysql客户程序,就不必提供参数: mysql*你可以查看当前的连接,以确定是否是如此: SHOW PROCESSLIST;+-+-
2、+-+-+-+-+-+-+| Id | User | Host | db | Command | Time | State | Info | 4 | root | localhost | NULL | Query | 0 | NULL | SHOW PROCESSLIST |第三章2、连接服务器的命令为: shellmysql -h -u root -p test Enter Password:*如果使用选项文件,将下面几行加入全局选项文件中: mysql host= user=root password然后可以直接运行mysql,不比提供连接参数:3、创建表的语句为: CREATE TABL
3、E pet ( name CHAR(30), owner CHAR(30), species CHAR(10), sex ENUM(“M”,”F”) NOT NULL, birth DATE, death DATE )4、如下录入文件pet.txt,段与段用制表符分隔Fluffy Harold cat F 1993-02-04 NClaws Gwen cat M 1994-03-17 NBuffy Harold dog F 1989-05-13 NChirpy Gwen bird F 1998-09-11 NFang Benny dog M 1990-08-27 NBowser Diane d
4、og M 1990-08-31 1995-07-29Whistler Gwen bird N 1997-12-09 NSlim Benny snake M 1996-04-29 NPuffball Diane hamster F 1999-03-30 N 然后连接服务器,发布查询: LOAD DATA INFILE “pet.txt” INTO TABLE pet;由于缺省时,LOAD DATA 语句以特殊字符n作为记录的结束,这和Unix系统的文本编辑器以n为换行符是一致的,但是在Windows系统中,换行符是rn,因此,如果是在Windows系统编辑的文件,那么上面的语句不能成功的录入数据
5、,要做如下的修改: LOAD DATA INFILE “pet.txt” INTO TABLE pet - LINES TERMINATED BY rn;如果使用mysqlimport程序,相应的命令行为: mysqlimport test pet.tt或者使用: mysqlimport test pet.tt -lines-terminated-by=rn第四章1、 创建表: CREATE TABLE ex4 data FLOAT, birth DATETIME );录入数据: INSERT ex4 VALUES(RAND(),NOW();多录入几个数据,现有的数据为: select * f
6、rom ex4;+-+-+| data | birth | 0.830329 | 2001-01-01 21:21:10 | 0.531143 | 2001-01-01 21:12 | 0.164729 | 2001-01-01 21:13 | 0.230213 | 2001-01-01 21:14 |data列的平均值: SELECT AVG(data) AS average FROM ex4;+-+| average | 0.43910377845168 | data列的总和: SELECT SUM(data) AS sum of data FROM ex4;+-+| sum of dat
7、a | 1.7564151138067 | SELECT MAX(data) AS max of data,MIN(data) AS min of data-+-+-+| max of data | min of data | 0.83032947778702 | 0.16472874581814 | data列降序排列: SELECT * FROM ex4 ORDER BY data DESC;| 0.830329 | 2001-02-18 21:| 0.531143 | 2001-02-18 21:| 0.230213 | 2001-02-18 21:| 0.164729 | 2001-0
8、2-18 21:2、 使用标准SQL模式匹配: select * from ex4 where birth like 2001-01-01%; 使用扩张正则表达式模式匹配: select * from ex4 where birth REGEXP 2001-01-013、 为student表创建索引: ALTER TABLE student ADD PRIMARY KEY(id), ADD INDEX mark(english,chinese,history);这样查看创建的索引: SHOW INDEX FROM student;+-+-+-+-+-+-| Table | Non_unique
9、 | Key_name | Seq_in_index | Column_name |.| student | 0 | PRIMARY | 1 | id |.| student | 1 | mark | 1 | english |.| student | 1 | mark | 2 | chinese |.| student | 1 | mark | 3 | history |. 为pet表创建索引,这次使用另一种方法: CREATE INDEX name ON pet (name(10),owner(10); 查看创建的索引的情况: SHOW INDEX FROM pet;+-+-+-+-+-+
10、-| pet | 1 | name | 1 | name |.| pet | 1 | name | 2 | owner |.4、删除pet表的索引: DROP INDEX name ON pet; 或者可以: ALTER TABLE pet DROP INDEX name;然后再用SHOW语句产看可知 show index from pet;Empty set (0.01 sec)第五章1、 shell mysqldump -all-database -opt data.sql2、 shell mysqldump -tab=”./bak” test3、 创建数据库test1 CREATE DA
11、TABASE test1;恢复表的结构 mysql test1 ./bak/pet.sql恢复数据: mysqlimport test1 ./bak/pet.txt在Win32平台上,你必须一个个的恢复文件,在Unix平台上,可以通过shell的文件匹配的功能,简化命令行: $mysql test1 ./bak/*.sql $mysqlimport test1 ./bak/*bak4、相应更新日志的内容是:create database test1;use test1;CREATE TABLE pet ( name char(32), owner char(32), species char(
12、32), sex enum(F,M), birth date, death date);LOAD DATA INFILE D:/Server/mysql/bin/./bak/pet.txt INTO TABLE pet;常规日志的内容由于过长,不再列出。常规日志列出了所有客户机发布的查询,不仅包括mysql,还包括mysqladmin,mysqldump,mysqlimport等,你可以观察这些客户机完成任务所需要执行的查询。5、 为了说明下面的操作,可以先进行几条SQL操作: INSERT pet SET name=tes DELETE FROM pet WHERE name=相应的在更新日
13、志中增加的记录为:use test;INSERT pet SET name=DELETE FROM pet WHERE name=然后我们删除test1数据库: drop database test10;相应的更新日志中的内容为:drop database test10;为了恢复数据库,假设更新日志的文件名是wxy.058,假定该日志包括第四题中更新日志的内容。首先删除更新日志中删除数据库的记录,然后用下面的语句恢复数据库表: mysql -one-databse test1 VALUES(“amin”,”localhost”,PASSWORD(“mypass”),Y,Y);3、由于该用户只在
14、user表中有权限记录,所以只要删除该记录即可: mysql DELETE FROM mysql.user WHERE User=”admin”;4、 创建数据库 CREATE DATABASE mark; 创建用户并授权: GRANT SELECT,DROP,CREATE,INSERT, UPDATE,DELETE,INDEX,ALTER ON mark.* TO teacher IDENTIFIED BY mypass也可以不使用GRANT语句,直接修改授权表: INSERT mysql.user(User,Password,Host) VALUES(“teacher”,PASSWORD(
15、“mypass”),”%”); INSERT mysql.db VALUES (%,markteacherYN第八章1、由于没有非常好的例子,这里只是做一个简单的分析:例如,对于表pet:SELECT species FROM pet PROCEDURE ANALYSE();输出有10列,对于列Optimal_fieldtype是建议的优化列类型,都是ENUM类型,在这里,species的数值有限,故可以改为输出所建议的类型:ENUM(birdcatdoghamster, snake) NOT NULL2、可以用两种方法使用SQL语句: LOCK TABLE pet WRITE; OPTIMIZE TABLE tbl_name; UNLOCK TABLES;使用myisamchk维护程序:LOCK TABLE pet WRITE;myisamchk -recover ./data/test/pet
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1