[mysql系列02]mysql常用语法

本文结合具体的实例讲解mysql基础常用语法

CREATE DATABASE

CREATE DATABASE db_name

CREATE DATABASE用给定的名字创建一个数据库,创建数据库mysqllearn。

create database mysqllearn;

CREATE TABLE

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
[table_options] [select_statement]

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] (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)

CREATE TABLE在当前数据库中用给出的名字创建一个数据库表,创建数据库表t_video。

DROP TABLE IF EXISTS `t_video`;
CREATE TABLE `t_video` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code_number` varchar(20) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `director` varchar(50) DEFAULT NULL,
  `starring` varchar(100) DEFAULT NULL,
  `release_time` date DEFAULT NULL,
  `production_area` varchar(50) DEFAULT NULL,
  `showtimes` int(11) DEFAULT ‘0‘,
  `hits` int(11) DEFAULT ‘0‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

ALTER TABLE

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 index_name
  or    RENAME [AS] new_tbl_name
  or    table_options

ALTER TABLE允许你修改一个现有表的结构。例如,你可以增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身。你也能改变表的注释和表的类型。

现在我们尝试去修改刚刚定义的表t_video中showtimes和hits字段的数据格式,修改前表结构可用describe tb_name来查看:

讲主演starring字段长度修改为200,修改语句如下:

alter table t_video modify starring varchar(200);

INSERT

    INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name [(col_name,...)]
        VALUES (expression,...),(...),...
或  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name [(col_name,...)]
        SELECT ...
或  INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
        [INTO] tbl_name
        SET col_name=expression, col_name=expression, ...

INSERT把新行插入到一个存在的表中,INSERT ... VALUES形式的语句基于明确指定的值插入行,INSERT ... SELECT形式插入从其他表选择的行。

插入部分实例数据如下:

INSERT INTO `t_video` VALUES (‘1‘, ‘F_C_001‘, ‘心花怒放‘, ‘宁浩‘, ‘黄渤,徐峥,袁泉,周冬雨,陶慧‘, ‘2014-09-30‘, ‘中国‘, ‘0‘, ‘0‘);INSERT INTO `t_video` VALUES (‘2‘, "F_C_002","黄金时代","许鞍华","汤唯 冯绍峰 王志文 朱亚文 黄轩","2014-10-01","中国","100","102400");INSERT INTO `t_video` VALUES (‘3‘, "F_C_003","食人虫","严嘉","夏梓桐 张梓琳 王传君 丁春诚 ","2014-10-10","中国","121","102100");INSERT INTO `t_video` VALUES (‘4‘, "F_C_004","一生一世","邹佡","谢霆锋 高圆圆 杜海涛 洛诗 林雪 车晓","2014-09-05","中国","100","102421");INSERT INTO `t_video` VALUES (‘5‘, "F_C_005","亲爱的","陈可辛","赵薇 黄渤 佟大为 郝蕾 张译 张雨绮","2014-09-25","中国","100","102422");INSERT INTO `t_video` VALUES (‘6‘, "F_C_006","闺蜜","黄真真","陈意涵 薛凯琪 杨子姗 余文乐 钟汉良 吴建豪","2014-07-31","中国","100","102434");

DELETE

DELETE [LOW_PRIORITY] FROM tbl_name
    [WHERE where_definition] [LIMIT rows]

DELETEtbl_name表中删除满足由where_definition给出的条件的行,并且返回删除记录的个数。如果你发出一个没有WHERE子句的DELETE,则所有行都被删除。

删除id=6的记录示意如下:

SELECT

SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
       [DISTINCT | DISTINCTROW | ALL]
    select_expression,...
    [INTO {OUTFILE | DUMPFILE} ‘file_name‘ export_options]
    [FROM table_references
        [WHERE where_definition]
        [GROUP BY col_name,...]
        [HAVING where_definition]
        [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
        [LIMIT [offset,] rows]
        [PROCEDURE procedure_name] ]

SELECT被用来检索从一个或多个表中精选的行。select_expression指出你想要检索的列。SELECT也可以用来检索不引用任何表的计算行。

LOAD DATA INFILE

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ‘file_name.txt‘ [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY ‘\t‘]
        [OPTIONALLY] ENCLOSED BY ‘‘]
        [ESCAPED BY ‘\\‘ ]]
    [LINES TERMINATED BY ‘\n‘]
    [IGNORE number LINES]
    [(col_name,...)]

MySQL的LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串。下面以MySQL5为例说明,说明如何使用MySQL的LOAD DATA命令实现文本数据的导入。

数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量INSERT语句。在实际中,常常会遇到两类问题:一类是数据导入,比如从word、excel表格或者txt文档导入数据(这些数据一般来自于非技术人员通过OFFICE工具录入的文档);一类数据交换,比如从MySQL、Oracle、DB2数据库之间的数据交换。

接下来介绍一下mysql的数据导入和导出

将表t_video表中的数据导出到d:/data.txt目录文件中:

SELECT * FROM t_video INTO OUTFILE ‘d:/data.txt‘
           FIELDS TERMINATED BY ‘,‘
           lines terminated by ‘\r\n‘;

文件导出后将t_video表清空,再执行导入

LOAD DATA INFILE ‘d:/data.txt‘ into table t_video
           FIELDS TERMINATED BY ‘,‘
           lines terminated by ‘\r\n‘;

时间: 2024-08-09 21:52:26

[mysql系列02]mysql常用语法的相关文章

mysql系列之三MySQL编译安装

mysql 安装: 专用软件包管理器包 deb,rpm rpm: RHEL(Oracle Linux),CentOS SUSE 通用二进制格式包 gcc:x86,x64 源代码 5.5,5.6 cmake编译 选择GA版本 mysql-client提供客户端 mysql-devel开发组建 mysql-server服务器端 mysql-shared共享库 mysql-shared-compat兼容库 mysql-test 测试组件 最后一次读取的配置优先级最高 /etc/my.cnf /etc/

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

MySQL 存储引擎,也被称为表类型:    MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .frm:表结构定义文件 .ibd:表空间(包含数据和索引文件) MySQL常用的查询命令: SHOW ENGINES;  #查看数据库支持的引擎及状态. SHOW TABLE STATUS LIKE 'user' \G  #查看表user的属性信息,\G竖排显示 mysqld --help --

[mysql系列03]mysql常用函数

一.数学函数 ABS(x)   返回x的绝对值 BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x)  返回大于x的最小整数值EXP(x)   返回值e(自然对数的底)的x次方 FLOOR(x)   返回小于x的最大整数值 GREATEST(x1,x2,...,xn)返回集合中最大的值 LEAST(x1,x2,...,xn)      返回集合中最小的值 LN(x)                    返回x的自然对数 LOG(x,y)返回x的以y为底

Linux命令:MySQL系列之四--MySQL管理表和索引

SQL语句: 数据库 表 索引 视图 DML语句 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 单或者多字段:    PRIMARY KEY(col,...) UNIQUE KEY(col,...) INDEX(col,...) 数据类型: data_type: BIT[(length)] 比特 | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 非常小的整数(1字节) | SMALLINT[(length)] [UNSIGNED]

Linux命令:MySQL系列之八--MySQL事务相关内容

MySQL,ODBC    数据库事务 多事务同时执行:彼此之间互不影响的方式进行并行:事务之间交互,通过数据集. START TRANSACTION;  启动事务命令   数据库只有启动了事务才允许回滚撤销等操作. 且数据的engine引擎必须是innodb,才支持事务 ROLLBACK 回滚事务,mysql只要没有提交开启了事务都可以进行回滚操作. COMMIT:事务提交,事务提交后无法进行回滚操作. 如果没有明确启动事务:  autocommit能实现自动提交,每一个操作都直接提交: 所以

[mysql系列01]mysql数据类型

1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为

MySQL系列(三) MySQL的约束

约束 数据完整性 constraint 实体完整性保证表中有一个主键,还可以编写触发器保证数据完整性 域完整性保证数据每列的值满足特定条件,可以通过一下途径来保证: 选择适合的数据类型,外键,编写触发器,还可以用default 约束作为强制域完整性的一个方面 参照完整性保证两张表之间的关系 约束的创建和查找: 创建有两种方式: 表建立时就定义约束条件 利用 alter table 来进行约束的更新 唯一索引的默认约束名与列名相同. 约束和索引的区别: 约束是一个逻辑上的概念,用来保证数据的完整性

MySQL系列(四) MySQL的索引和算法

11 表结构 表是关于特定实体的数据集合,这也是关系型数据库的核心. 在InnoDB中,表都是根据主键顺序组织存放的,这种存储方式的表成为索引组织表. 所有数据都被逻辑的存放在一个空间中,称之为表空间 tablespace. 表空间又由段 segment, 区 extent, 页page 组成. 页在一些文档中有时也称之为块 block. 一个区一般为1M,一个页总是16KB,即一个区一共有64个连续的页. InnoDB中数据是按行进行存放的.每个页存放的行是有硬性规定规定的,最多运行存放16

T-SQL和MySQL的一些常用语法的区别

本文将主要列出MySQL与SqlServer的SQL语句的一些常用语法的不同之处,且以常用的存储过程的相关内容为主. 1. 标识符限定符 SqlServer [] MySql `` 2. 字符串相加 SqlServer 直接用 + MySql concat() 3. isnull() SqlServer isnull() MySql ifnull() 注意:MySql也有isnull()函数,但意义不一样 4. getdate() SqlServer getdate() MySql now()