免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1050 | 回复: 0
打印 上一主题 下一主题

MYSQL--语法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:05 |只看该作者 |倒序浏览

数据库: 表,视图(view),索引(index),触发器(trigger),存储过程(storage procedure),存储函数(storage function),事件调度器(event scheduler),

 

创建表语法:

         CREATE TABLE [IF NOT EXISTS] tb_name

   例: CREATE TABLE user ( id INT NOT NULL, Name CHAR(30) NOT NULL,AUTO_INCREMENT KEY);

创建表时,指定引擎

CREATE TABLES users(id INT) ENGINE = InnoDB;

CREATE TABLES users ENGINE = InnoDB;

 

AUTO_INCREMENT 自动增长

 

创建表:

CREATE TABLE db_name like db_othername; 只创建表结构

创建users

CREATE TABLE users ( ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30) NOT NULL,Age TINYINT UNSIGNED NOT NULL,Gender ENUM('F','M') NOT NULL DEFAULT 'M');

 

 

设置默认储存引擎:

SET GLOBAL storage_engine = engine_name;

SET SESSION storage_engine = engine_name; 只对当前有效  

 

where字句后可用的:>,<,=,BETWEEN…AND…

 

SELECT DISTINCT zone FROM zones LIMIT 100; 显示100行且去除重复

 

GROUP BY 分组

       SELECT zone, COUNT(*) FROM mytb GROUP BY zone;

 

数据导入:#mysql –uroot –p mydb 表名 < /tmp/mydb.sql

          mysql>LOAD DATA INFILE ‘/root/table.sql INTO mytb;:mytb创建的表

order by 字表 DESC 降序; ORDER BY 字表 ASC升序,默认是升序

SHOW INDEXES FROM users;

UNIQUE 唯一性

BTREE | HASH  两种索引类型

 

修改表结构:

 ALTER TABLE tb_name

            添加字段:ADD col_name col_ def 添加字段 AFTER  col_namecol_name后添加字段,FIRST col_name该字段前加字段

     ALTER TABLE user1 ADD Master TINYINT UNSIGNED;

修改字段:

     CHANGE old_name new_name col_definat

      MODIFY col_name col_definat

    例: ALTER TABLE user MODIFY Gender ENUM(‘F’,’M’) NOT NULL DEFAULT ‘M’;

   例: ALTER TABLE user CHANGE Master Tutor TINYINT UNSIGNED AFTER Age;

添加索引: ADD {ADD|INDEX} [index_name] [index_type] (col….)

例:ALTER TABLE user ADD INDEX (Age);

删除字段: DROP col_name

删除键:DROP PRIMARY KEY

        DROP {INDEX|KEY} index_name

给表重命名:ALTER TABLE user RENAME TO qq user命名成qq RENAME TABLE user TO qq

 

插入数据:INSERT INTO tb_name(字段名) VALUE (‘’,’’,’’)

          INSERT INTO tb_name VALUE (‘’,’’,’’)

          INSERT INTO tb_name SET 字段名=自定义

插入多行:INSERT INTO tb_name (字段名) VALUES (‘’,’’) (‘’,’’) (‘’,’’)

   这里的INSERT可以换成REPLACE,区别replace能直接替换主键而不报错,insert不可

修改数据:UPDATE tb_name SET 字段名=设置 WHERE 条件

   例:       UPDATE user SET Age=21 LIMIT 2; 修改前两行年龄

删除数据:

    DELETE FROM tb_name WHERE 条件

    TRUNCATE TABLE tb_name 清空数据并恢复初始状态

SELECT LAST_INSERT_ID();

ALTER TABLE user AUTO_INCREMENT=2 设定自动增长的ID

 

多表查询:

    连接的类型:

交叉连接(很少用到),例:SELECT * FROM user,user2

内连接, 例:SELECT * FROM user,user2 WHERE user.ID=user2.CIDuser的字段id和表user2的字段cid连接起来

 别名 :SELECT * FROM user AS A, user2 AS B HWERE A.ID=B.ID                           

 

外连接:左外连接、右边连接、

         SLECT k.Name,j.Cname FROM user AS k, LEFT JOIN user2 AS j ON k.CID=J.CID

全外连接,自连接

    例:SELECT k1.NAME,k2.Name FROM user AS k1, user2 AS k2 WHERE k1.Age=k2.UID

UNION: 例: SELECT UID AS ID ,Name AS NAME FROM user  UNION SELECT CID AD ID, CNAME AS NAME FROM user2

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP