当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-03-04 17:51:00  来源:本站整理

<b>MySQL的重要語法</b>[MySQL防范]

赞助商链接



  本文“<b>MySQL的重要語法</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  1、帐号与权限
  设定 root 和其他 user 的密码
  mysqladmin -u root password '新密码'
  mysqladmin -u root -p
  Enter password:    此时再输入密码(倡议采取)
  use mysql;
  mysql> UPDATE user SET password=password('新密码') where user='root';
  只改 root 的密码,假如没有效 where ,则表示改全部 user 的密码
  mysql> FLUSH PRIVILEGES; 在 mysql 资料库内,一定要用 flush 更新记忆体上的资料
  删除空帐号
  mysql> DELETE FROM user WHERE User = '';
  mysql> FLUSH PRIVILEGES;
  成立新帐号
  mysql> GRANT 权限 ON 资料库或资料表 TO 利用者 IDENTIFIED BY '密码';
  权限
  资料库或资料表
  *.* 全部资料库里的全部资料表
  * 预设资料库里的全部资料表
  资料库.* 某一资料库里的全部资料表
  资料库.资料表 某一资料库里的特定资料表
  资料表  预设资料库里的某一资料表
  设定/改正权限
  用 root 登入 MySQL
  mysqladmin -u root -p
  Enter password:
  mysql> GRANT all ON db35.* TO s35@'localhost' IDENTIFIED BY 's35';
  把 db35 这个资料库(含其下的全部资料表),受权给 s35,从 localhost 上来,密码为s35
  mysql> GRANT all ON *.*  把全部资料库及资料表受权给别人,太危险了!
  mysql> GRANT all??? ON www.* TO '*'@'*' IDENTIFIED BY '';
  把 www 这个资料库(含其下的全部资料表),受权给 任何机械任何人,无密码(普通给不特定人士利用)
  mysql> FLUSH PRIVILEGES;   (最後一定要逼迫更新权限)
  2、资料库/资料表/栏位的操作
  成立资料库 CREATE DATABASE 资料库名;
  语法:CREATE DATABASE db_name
  利用资料库 USE 资料库名;
  语法:USE db_name
  删除资料库 DROP DATABASE 资料库名;
  语法:DROP DATABASE [IF EXISTS] db_name
  成立资料表
  CREATE TABLE 资料表名 (栏位1 资料型态, 栏位2 资料型态, ……);
  语法:
  CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,…) [table_options] [select_statement]
  例:
  craete database basic;
  use basic;
  create table basic(
  no char(4)
  name char(10)
  id char(10));
  create_definition:
  col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
  [PRIMARY KEY] [reference_definition]
  or    PRIMARY KEY (index_col_name,…)
  or    KEY [index_name] KEY(index_col_name,…)
  or    INDEX [index_name] (index_col_name,…)
  or    UNIQUE [INDEX] [index_name] (index_col_name,…)
  or    [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,…)
  [reference_definition]
  or    CHECK (expr)
  资料构造(type):
  资料型态 阐明
  TINYINT 有标记的范围是-128到127, 无标记的范围是0到255.
  SMALLINT 有标记的范围是-32768到32767, 无标记的范围是0到65535.
  MEDIUMINT 有标记的范围是-8388608到8388607, 无标记的范围是0到16777215.
  INT 有标记的范围是-2147483648到2147483647, 无标记的范围是0到4294967295.
  INTEGER INT的同义词.
  BIGINT 有标记的范围是-9223372036854775808到 9223372036854775807,无标记的范围是0到18446744073709551615.
  FLOAT 单精密浮点数字.不能无标记.答应的值是-3.402823466E+38到- 1.175494351E-38,0 和1.175494351E-38到3.402823466E+38.
  DOUBLE 双精密)浮点数字.不能无标记.答应的值是- 1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308.
  DOUBLE PRECISION DOUBLE的同义词.
  REAL DOUBLE的同义词.
  DECIMAL DECIMAL值的最大范围与DOUBLE相 同.
  NUMERIC DECIMAL的同义词.
  DATE 日期.援助的范围是'1000-01-01'到'9999-12-31'.
  DATETIME 日期和时间组合.援助的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
  TIMESTAMP 时间戳记.范围是'1970-01-01 00:00:00'到2037年的某时.
  TIME 一个时间.范围是'-838:59:59'到'838:59:59'.
  YEAR 2或4位数字格局的年(内定是4位).答应的值是1901到2155.
  CHAR 固定长度,1 ~ 255个字元.
  VARCHAR 可变长度,1 ~ 255个字元.
  TINYBLOB
  TINYTEXT 最大长度为255(2^8-1)个字符.
  MEDIUMBLOB
  MEDIUMTEXT 最大长度为16777215(2^24-1)个字符.
  LONGBLOB
  LONGTEXT 最大长度为4294967295(2^32-1)个字符.
  ENUM 一个ENUM最多能有65535差别的值.
  SET 一个SET最多能有64个成员.
  index_col_name:
  col_name [(length)]
  reference_definition:
  REFERENCES tbl_name [(index_col_name,…)]
  [MATCH FULL | MATCH PARTIAL]
  [ON DELETE reference_option]
  [ON UPDATE reference_option]
  reference_option:
  RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
  table_options:
  type = [ISAM | MYISAM | HEAP]
  or      max_rows = #
  or      min_rows = #
  or      avg_row_length = #
  or      comment = "string"
  or      auto_increment = #
  select_statement:
  [ | IGNORE | REPLACE] SELECT …  (Some legal select statement)
  删除资料表 DROP TABLE 资料表名;
  语法:DROP TABLE [IF EXISTS] tbl_name [, tbl_name,…]
  改变资料表构造(新增/删除栏位、成立/撤消索引、改变栏位资料型态、栏位重新命 名)
  语法:
  ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec …]
  alter_specification:
  ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
  or    ADD INDEX [index_name] (index_col_name,…)
  or    ADD PRIMARY KEY (index_col_name,…)
  or    ADD UNIQUE [index_name] (index_col_name,…)
  or    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  or    CHANGE [COLUMN] old_col_name create_definition
  or    MODIFY [COLUMN] create_definition
  or    DROP [COLUMN] col_name
  or    DROP PRIMARY KEY
  or    DROP INDEX key_name
  or    RENAME [AS] new_tbl_name
  or    table_option
  典范:
  栏位重新命名
  mysql> ALTER TABLE t1 CHANGE a b INTEGER;
  将资料表 t1 栏位 a 改名为 b (其资料型态是 integer)
  改变栏位资料型态
  mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
  mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
  将资料表 t1 栏位 b 的资料型态改成 bigint not null
  mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
  mysql> ALTER TABLE t1 RENAME t2;
  将资料表 t1 改名为 t2
  mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
  将资料表 t2 栏位 a 资料型态由 integer 改成 tinyint not null ,栏位 b 改名为 c 资料型态改成 char(20)
  mysql> ALTER TABLE t2 ADD d TIMESTAMP;
  在资料表 t2 增添新栏位 d 资料型态是 timestamp
  mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
  在资料表 t2 ,对 d 栏位做索引,并以栏位 a 作为主索引键
  mysql> ALTER TABLE t2 DROP COLUMN c;
  删除栏位 c
  mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c);
  新增栏位 c,并做索引(做索引的栏位必须为 not null )
  资料表最佳化 OPTIMIZE TABLE 资料表名
  语法:OPTIMIZE TABLE tbl_name
  栏位长度有变更、删除大量资料,都应举行资料表最佳化
  3、记录的操作
  插入一笔或多笔记录 INSERT INTO 资料表(栏位1,栏位2,……) VALUES(值1,值2,……), (值1,值2,……), ……
  (MySQL 3.22.5 以後可插入多笔记录)
  语法:
  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
  [INTO] tbl_name [(col_name,…)]
  VALUES (expression,…),(…),…
  or  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
  [INTO] tbl_name [(col_name,…)]
  SELECT …
  or  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
  [INTO] tbl_name
  SET col_name=expression, col_name=expression, …
  典范:
  mysql> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
  不可写成
  mysql> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);
  因为:栏位 col1 的值先填入後,才可以计算栏位 col2
  从档案读入资料
  语法:
  LOAD DATA [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]
  INTO TABLE tbl_name
  [FIELDS
  [TERMINATED BY '\t']    每一栏位以某字元脱离(内定是 tab)
  [OPTIONALLY] ENCLOSED BY "]   每一栏位以某字元括住(内定是不利用括号)
  [ESCAPED BY '\\' ]]
  [LINES TERMINATED BY ' ']  设定换行的字元(内 定是 )
  [IGNORE number LINES]    忽视最前面几行(最前面几笔记录不抄进来)
  [(col_name,…)]
  典范:
  mysql> USE db1;
  mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;
  从目前 MySQL 目录读入 data.txt
  mysql> LOAD DATA INFILE "./88.txt" INTO TABLE TEACHER FIELDS TERMINATED BY ' ' ;
  从目前 MySQL 目录(我的在 /var/lib/mysql )读入 data.txt ,每一栏位以 空白 脱离
  mysql> LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,…);
  只将 persondata.txt 里某些栏位的资料抓过来
  删除记录 DELETE [LOW-PRIORITY] FROM 资料表名 WHERE 条件 [LIMIT rows]
  语法:
  DELETE [LOW_PRIORITY] FROM tbl_name
  [WHERE where_definition] [LIMIT rows]
  LOW-PRIORITY 是等到没有效户端利用时再删
  LIMIT rows 限制删除记录的笔数
  典范:
  mysql> DELETE FROM 资料表名;
  删除全部记录
  mysql> DELETE FROM 资料表名 WHERE 1>0;
  删除全部记录,但速度较慢,便利在萤幕上看
  更新一笔记录 (语法与 INSERT 相同)
  REPLACE INTO 资料表(栏位1,栏位2,……) VALUES(值1,值2,……)
  语法:
  REPLACE [LOW_PRIORITY | DELAYED]
  [INTO] tbl_name [(col_name,…)]
  VALUES (expression,…)
  or  REPLACE [LOW_PRIORITY | DELAYED]
  [INTO] tbl_   以上是“<b>MySQL的重要語法</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .