mysql手册怎么样 mysql8手册( 三 )


4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOB TEXT类型 , 最大长度为(2^16-1)个字符 。
6.VARCHAR型:变长字符串类型
7.导入数据库表
创建.sql文件
先产生一个库如auction.c:mysqlbinmysqladmin -u root -p creat auction , 会提示输入密码,然后成功创建 。
导入auction.sql文件
c:mysqlbinmysql -u root -p auctionauction.sql 。
通过以上操作 , 就可以创建了一个数据库auction以及其中的一个表auction 。
8.修改数据库
在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
这样,就在表dbname中添加了一个字段userid,类型为int(11) 。
9.mysql数据库的授权
mysqlgrant 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
DDL操作
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql SHOW DATABASES;
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;
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)
mysqluse database;
mysqlsource d:/mysql.sql;
10:删除表
mysqldrop TABLE MYTABLE;
11:清空表
mysqldelete from MYTABLE;
12:更新表中数据
mysqlupdate MYTABLE set sex=”f”where name=’hyq’;
高性能mysql 第三版怎么样在MySQL社区,这是一本重量级的书,我不知道出版社是怎么挑选译者的,但是很明显,我个人的意见 , 这次挑选非常的失败 。书中98页倒数第4行的"binary search"的翻译(二进制搜索)已经道出了一切,但凡学过计算机的,我估计都不能做出这样的翻译 。在计算机领域,二进制是一个专门的术语,有特定的含义 。我不仅怀疑译者根本没学过"binary search"算法,以至于只能按字面翻译,我甚至怀疑他们连“二进制”的含义可能也不懂,找这样的人来翻译,真是天大的笑话 。再举一个术语的翻译“secondary index”,书中的译法是“第二索引”,暂且不论惯用的“二级索引”是否是一个标准的译法,假如在主键之外,还有B,C两个索引,如果B叫“第二索引”,那么C就应该叫“第三索引”了?为什么C也叫“第二”呢 , 难道是并列第二?“第二”在汉语中是一个意思很明确的词,你当然可以说“第二”也能表示“二级”的意思,这种牵强的脱离通用语义的翻译真是对翻译标准“信雅达”中“达”字的讽刺 。关于“达”我们还可以找一个例子,介绍coverring index的部分,译文第96页 , 原文第124页 。原文是“For example,the sakila.actor table uses InnoDB and has an index on last_name, so the index can cover queries that retrieve the primary key column actor_id, even though that column isn’t technically part of the index”,译文是“例如,sakila.actor表适用了InnoDB并且在last_name上有索引,因此,即使该列不是索引的一部分,索引页可以覆盖取得主键actor_id的查询”,原文读来没有任何的歧义,译文却变了样,第一遍读的时候,你能分辨出“即使该列不是索引的一部分”中的“该列”是指代的“last_name"呢?还是后面出现的"actor_id”呢?将代词放在指代的名词之前出现,这绝对是对人的智力的挑战,即便是诗歌 , 我也没见汉语中有多少这样的用法,遑论技术性文字 。在原文中"that column"这个代词出现在了"actor_id"之后 , 不知道为什么在译文中,代词就钻到了指代的名词之前 。如果可以抛开“达”,还要争辩词的译法是“见仁见智”的 , 那么对“信”的违背则已经使这本重量级巨著的翻译失去了最基本的存在价值,随便举两个例子: 1. 4.6查询提示优化对HIGH_PRIORITY的描述 , 译本第152页,原书第195页 , 原文是“HIGH_PRIORITY tells MySQL to schedule a SELECT statement before other statements that may be waiting for locks, so they can modify data.”,译文是“HIGH_PRIORITY告诉MySQL将SELECT语句放在其他语句的前面 , 以便它修改数据”,原文中的“so they can modify data"变成了"以便它可以修改数据" , 复数形式的they变成了单数形式的"它",这个改变虽然细微,但直接影响了这个位置的代词所指代的主语,这个代词到底是"SELECT statement"呢?还是"other statements that may be waiting for locks"?原文中当然是其他能modify data的statements , 而到了疑问中,变成了"SELECT statement",问一个菜鸟级的问题,select statement能modify data吗? 2. 还是4.6查询提示优化,对DELAYED的描述 , 译文第152页,原文第196页 。原文是"It lets the statement to which it is applied return immediately and places the inserted rows into a buffer, which will be inserted in bulk when the table is free",译文是"应用了这个提示的语句会立即返回并将待插入的列放入缓冲区,在表空闲的时候再执行插入",粗看没什么问题,细看问题一大堆 。2.1 在原文中,主语是it,指代的是"DELAYED"这个hint,到了译文中,主语从"提示"本身变成了"应用了这个提示的语句",于是在原文中的"delayed"这个hint一方面使语句立即返回,另一方面使MySQL在后台处理被缓存的数据两层意思变成了语句一方面返回,另一方面“将待插入的列放入缓冲区” , 到底是"DELAYED"使数据被插入buffer,还是应用了"DELAYED"的语句使数据被插入了buffer,区别虽然微妙,但区别就是区别,译文的意思与原文已差之毫厘,谬以千里 。2.2 原文中"which will be inserted in bulk..."是一个被动语态 , 指数据被插入,主语没有明确指出,在上下文环境中当然是数据库;而到了译文中,“在表空闲的时候再执行插入”是一个主动的语态,“谁”执行了插入?如果和上句连起来,很容易理解成“应用了这个提示的语句在表空闲的时候再执行插入”,这不是扯淡吗?当然 , 稍微有点数据库常识的人都不会这样理解,但原文原本语义清晰,翻译过来却主语混乱,实在令人难以接受 。2.2 在原文中的"rows",一个复数形式的词,到了译文中,变成了"列",假如说复数变单数还能接受,把"row"翻译成"列"真是天才的创举 。2.3 原文中"will be inserted in bulk when ..."明确指出了insert的方式是"in bulk",但是这个信息在译文中丢失了 。类似的问题简直处处可见,原文的文字简洁清晰,非常容易理解,但我读到的译文却非常难以理解,更可恨的是 , 原文中大量的信息被扭曲,抛弃 。“信雅达”这三标准没有一个做到 。我个人的总结是 , 这个译本的水平跟中国足球的水平一样,能把球停在百米开外,一个字,糙 。客观地说 , 这本书至少将MySQL优化的知识在中国的传播门槛大大降低,但咱不是黄莺 , 不会唱赞歌,既然是书评,就是要来挑刺的,看不到刺,容不得刺,电子工业永远没有赶上O'Relly的机会,中国的技术书籍永远都只能是菜鸟水平 。

推荐阅读