mysql的常用数据类型和数据类型修饰
后面的带数字表示此类型的字段长度
数值型:
TINYINT 1 ,SMALLINT 2,MEDIUMINT 3 ,INT 4,BIGINT 8,DECIMAL,FLOAT 4,DOUBLE 8,BIT
字符串型
CHAR,VARCHAR,BINARY,VBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOG,TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT,EMUM,SET
日期时间型
date,time,datetime,timestamp
数据限定修饰:
NOT NULL,NULL,DEFAULT,AUTO_INCREMENT,UNSIGNED,PRIMARY KEY,UNIQUE KEY,FOREIGN KEY
CHARACTER SET #ps:SHOW CHARACTER SET 显示当前数据库所支持的所有字符集
COLLATION #ps:SHOW COLLATION 显示所支持的所有排序规则
以下是SQL的每种DDL,DCL,DML语言
DDL
----Data Definition Language 数据库定义语言
如 create procedure之类
创建数据库
CREATE DATABASE [IF NOT EXISTS] DBNAME [CHARACTER SET 'CHAR_NAME'] [COLLATE 'COLL_NAME']
修改:ALTER 删除:DROP
创建一张新表
CRTATE TABLE [IF NOT EXISTS] TBNAME(col_name col_definition,...)
EXAMPLE:
1
mysql>CREATE TABLE students(Id INT PRIMARY KEY NOT NULL AUTO_INCREMENT UNSIGNED,Name CHAR(20) UNIQUE KEY NOT NULL,Age TINYINT UNSIGNED INDEX,Gender CHAR(1) NOT NULL) [ENGINE={MyISAM | InnoDB }];
也可以这样写(区别在于单独定义主键,唯一键和索引):
1
mysql>CREATE TABLE students(Id INT NOT NULL AUTO_INCREMENT UNSIGNED,Name CHAR(20) NOT NULL,Age TINYINT UNSIGNED,Gender CHAR(1) NOT NULL,PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age))
查询出一张表的数据后创建新表(字段定义会丢失,数据会保留)
CREATE TABLE TBNAME SELECT...
EXAMPLE:
1
mysql>CREATE TABLE test SELECT * FROM students WHERE Id>5;
以一张表的格式定义,创建一张新的空表
CREATE TABLE TBNAME1 LIKE TBNAME2
修改表:
ALTER TABLE tb_name
MODIFY #修改字段定义
CHANGE #可以修改字段名和字段定义
ADD
DROP
EXAMPLE:
给表添加字段
1
mysql>ALTER TABLE students ADD (course VARCHAR(100),teacher CHAR(20));
添加惟一键
1
mysql>ALTER TABLE students ADD UNIQUE KEY Name;
修改字段:
修改course字段为Course字段,并放在Name字段之后(修改字段需要带上新的字段的定义)ps:MODIFY只能修改字段定义
1
mysql>ALTER TABLE students CHANGE course Course VARCHAR(100) [AFTER Name];
重命名表名
1
2
mysql>ALTER TABLE students RENAME TO stu;
mysql>RENAME TABLE stu TO students;
添加一个外键约束
1
ALTER TABLE students ADD FOREIGN KEY foreign _cid (CID) REFERENCES course (CID);
创建索引
CREATE INDEX index_name ON TABLE (col_name[(length)] [ASC|DESC]) [USING {BTREE|HASH}];
删除索引
DROP INDEX index_name ON TBNAME;
查看表状态:SHOW STATUS LIKE 'TBNAME';
查看表的索引:SHOW INDEXES FROM TBNAME;
DML
----Data Manipulation Language 数据操纵语言
如insert,delete,update,select(插入、删除、修改、检索)
插入修改数据
#如果每个字段都有值,不需要写字段名称,每组值用,隔开
mysql>INSERT INTO tb_name (col1,col2) VALUES ('STRING',NUM),('STRING',NUM);
mysql>INSERT INTO tb_name SET col1='string',col2='string';
mysql>INSERT INTO tb_name (col1,col2,col3) SELECT...;
EXAMPLE:
1
2
mysql>INSERT INTO students (Name,Gender,teacher) VALUE ('lujunyi','M','mage'),('wusong','M','zhuima');
mysql>INSERT INTO students SET Name='lujunyi',Gender='M',tearcher='zhuima';
更新数据
1
2
mysql>UPDATE tb_name SET column=value WHERE column=value;
mysql>UPDATE students SET Course='mysql' WHERE Name='lujunyi';
替换数据:
和UPDATE使用方式一样,只要将UPDATE换成REPLACE即可
删除数据
mysql>DELETE FROM tb_name WHERE conditions;
1
mysql>DELETE FROM students WHERE Course='mysql';
清空表:将会重置计数器
mysql>TRUNCATE tb_name
查询数据
单表查询:
mysql>SELECT [DISTINCT] column FROM tb_name WHERE CONDITION;
EXAMPLE:
#基本投影查询
1
mysql>SELECT Name,teacher FROM students WHERE Name='wusong';
#重复的结果只显示一次
1
mysql>SELECT DISTINCT Gender FROM students;
#组合条件,可以使用AND,OR,NOT,XOR组合多个条件
1
mysql>SELECT * FROM students WHERE Age>20 AND Gender='M';
#使用BETWEEN...AND...筛选出年龄介于20-25之间的数据
1
mysql>SELECT * FROM students WHERE Age BETWEEN 20 AND 25;
#查询Name以Y开头的的数据,%表示任意长度的任意字符,_表示任意单个字符
1
mysql>SELECT * FROM student WHERE Name LIKE 'Y%';
#使用正则表达式匹配查询,关键词为RLINK或者REGEXP
1
mysql> SELECT * FROM students WHERE Name RLINK '^[MNY].*$';
#使用IN关键词,将条件限定在一个列表中。用IS关键词,表示条件是否为空(IS NULL 或者 IS NOT NULL)
1
mysql>SELECT * FROM students WHERE Age IN (20,22,24);
#将查询的结果进行排序
1
mysql>SELECT * FROM students ORDER BY Name {ASC|DESC};
#查询结果别名显示
1
mysql>SELECT Name AS Stu_Name FROM students;
#LIMIT限定查询结果的条数,LIMIT 2,3表示偏移2条数据后,取3条数据
1
mysql>SELECT * FROM students LIMIT 2;
#求平均数:AVG(),最大值:MAX() 最小值MIN() 数量:COUNT() 求和:SUM()
1
mysql>SELECT AVG(age) FROM students;
#分组GROUP BY
1
mysql>SELECT Age, Gender FROM students GROUP BY Gender;
#别名:AS
1
mysql>SELECT COUNT(Age) AS Num,Age FROM students GROUP BY Age;
#过滤:HAVING
1
mysql>SELECT COUNT(Age) AS Num,Age FROM students GROUP BY Age HAVING Num>2;
多表查询:
#指定已哪个字段连接2张表
1
mysql>SELECT students.Name,courses.Cname FROM students,courses WHERE students.CID1 = courses.CID;
#连接时指定别名
1
mysql>SELECT students.Name,courses.Cname FROM students,courses WHERE students.CID1 = courses.CID;
#左外连接...LEFT JION...ON...
1
mysql>SELECT s.Name,c.Cname FROM students AS s LEFT JION courses AS c ON s.CID1=c.CID;
#右外连接...RIGHT JION...ON...
1
mysql>SELECT s.Name,c.Cname FROM students AS s RIGHT JION courses AS c ON s.CID1=c.CID;
子查询
#查询年龄大于平均年龄的数据
1
mysql>SELECT * FROM students WHERE Age > (SELECT AVG(Age) FROM students);
#在FROM中使用子查询
1
mysql>SELECT Name,Age FROM (SELECT * FROM students WHERE CID IN (2,3)) AS t WHERE Age>20;
#联合查询
1
mysql>(SELECT Name,Age FROM students) UNION (SELECT Tname,Age FROM tutors);
创建视图
CREATE VIEW VIEW_NAME AS SELECT....
DCL
----Data Control Language 数据库控制语言
如grant,deny,revoke等,只有管理员才有这样的权限。
创建用户
mysql>CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'
删除用户
mysql>DROP USER 'USERNAME'@'HOSHOST支持通配符
_:任意单个字符
%:任意多个字符
授权
mysql>GRANT pri1,pri2...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD']
取消授权
mysql>REVOKE pri1,pri2...ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
查看授权
mysql>SHOW GRANTS FOR 'USERNAME'@'HOST';
EXAMPLE:
mysql>CREATE USER 'lujunyi'@'%' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'lujunyi'@'%';
mysql>GRANT ALL PRIVILEGES ON testdb.* TO 'lujunyi'@'%';
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2013-06/86431.htm
相关推荐
9. 自定义模板:用户可以创建自己的SQL模板,方便快速执行常用的操作,提高工作效率。 10. 多语言支持:MySQL-Front提供了多种语言界面,包括中文,方便不同地区的用户使用。 总之,MySQL-Front免安装绿色版为...
通过阅读源代码,你可以深入理解JDBC驱动如何与MySQL服务器通信,如何处理SQL语句,以及如何实现JDBC接口。 总的来说,`mysql-connector-java-8.0.13.zip` 提供了一切必要的组件,让Java开发者能够轻松地在他们的...
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择...
`mysql-connector-java-5.1.48.zip`文件包含的是MySQL Connector/J的一个特定版本——5.1.48,这是一个常用的版本,适用于很多项目。在学习和使用Java开发数据库相关应用时,这个驱动包是必不可少的。 首先,我们...
mysql-connector-java-8.0.19.jar包含了实现这些接口的类和方法,使得Java开发者可以方便地在代码中执行SQL语句,处理结果集等。 2. **版本8.0.19**:这个版本的发布意味着它包含了一系列的改进、修复和新特性。...
本文将基于给定的文件信息,深入解析MySQL命令行工具的常用命令及其应用场景。 #### 1. 连接MySQL服务器 连接MySQL服务器的基本语法是: ```bash mysql -h 主机地址 -u 用户名 -p[密码] ``` 其中,`-h` 参数后跟的...
- **模板功能**:创建和保存常用的SQL查询作为模板,提高工作效率。 - **宏和变量**:使用宏和变量可以动态地生成SQL语句,适应复杂的需求。 - **多窗口操作**:支持同时打开多个数据库或表,便于对比和处理数据...
MySQL Workbench是一款图形化界面工具,用于数据库设计、管理和开发,而MySQL Command Line Client则是一个命令行工具,适用于执行SQL语句和数据库管理任务。 总的来说,“mysql-5.5.40-win32.msi”为Windows 32位...
对于MySQL数据库,EF(Entity Framework)是常用的ORM(对象关系映射)框架,它允许开发者以面向对象的方式操作数据库,而无需编写SQL语句。然而,要使EF与MySQL配合工作,就需要MySQL Connector/Net作为中间件来...
1. **InnoDB存储引擎增强**:InnoDB是MySQL最常用的事务处理引擎,5.7版中进行了性能优化,如更快的插入速度、更高效的索引处理以及更好的并发处理能力。此外,它还引入了InnoDB表空间在线压缩,可以在不影响服务的...
- `好251网址导航.htm`:这可能是一个网页链接文件,通常包含一些常用网站的链接,与MySQL安装无关。 - `绿色资源网.url`:这是一个快捷方式文件,指向一个网站,可能是提供软件下载或资源分享的平台,也可能与MySQL...
`build.xml`是Ant构建工具的配置文件,Ant是Java项目常用的自动化构建工具,用于编译、测试和打包项目。开发者可以根据这个文件来构建和部署包含MySQL驱动的Java应用。 `src`目录可能包含了驱动的源代码,这对于...
- **mysql-proxy**:这是由MySQL官方提供的开源工具,通过Lua脚本来执行SQL语句的判断与转发。虽然被官方推荐用于测试环境,但在某些特定场景下也能发挥不错的效果。 - **amoeba**:由陈思儒开发的一款Java编写...
MySQL-SQL语法及其使用PPT:主要介绍了MySQL常用语法及其基础命令的使用,练习,总结齐全、概况精要
总之,`github.com/go-sql-driver/mysql`是Go语言中连接MySQL数据库的常用驱动,它简化了数据库操作,让开发者能够更专注于业务逻辑。通过熟练掌握这个驱动,你可以有效地在Go项目中实现与MySQL的交互。
Oracle、MySQL和SQLService是数据库管理系统中的重要组成部分,它们各自有着独特的功能和应用场景。在Java编程环境中,数据库驱动(JDBC驱动)是连接这些数据库的关键。`oracle-mysql-sqlservice jar驱动` 提供了与...
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型...
InnoDB是MySQL中最常用的事务处理存储引擎,提供ACID(原子性、一致性、隔离性和持久性)事务支持,适用于需要数据一致性的应用场景。 在Linux环境下安装MySQL 5.0.41,首先需要解压该压缩包,通常可以使用`tar`...
这个库通常被称为`mysql-python`,是Python开发者与MySQL数据库交互的常用工具。在这个压缩包中,包含的是1.2.2版本的源代码,允许用户在本地编译安装,以在Python环境中连接和操作MySQL数据库。 首先,我们来了解...
.rar文件是Windows系统中常用的压缩格式,这里包含的是一个名为“MySQL-python-1.2.3.win32-py2.7.exe”的可执行文件,这通常是一个安装程序,用于在Python 2.7环境下安装MySQL-python库。 标签“MySQL python win...