MySQL基础知识点罗列,帮助理清思路,主要包含安装、基本操作、MySQL约束、C/C++库使用等知识点。
Ubuntu下安装MySQL
按照顺序执行下面三条指令:
$ sudo apt-get install mysql-server $ sudo apt-get install mysql-client $ sudo apt-get install libmysqlclient-dev
安装完成,检查MySQL是否成功安装:
$ sudo netstat -tap | grep mysql
记住安装过程中需要输入的密码,通过下列命令可以登录mysql数据库:
$ mysql -u root -p # -u for user, -p for password
安装后,MySQL是默认启动的,如果需要自己控制,则可以执行下列命令:
$ sudo /etc/init.d/mysql start$ sudo /etc/init.d/mysql stop$ sudo /etc/init.d/mysql restart
MySQL基本操作
登录操作
$ mysql -u root -p -P 3306 -h 127.0.0.1
设置提示符
mysql> prompt \u@\h \d>
查询警告
mysql > show warnings;
查询命令帮助
使用 help 命令能够找到MySQL语句的具体使用帮助指南,我们以create database举例:
mysql> help create;
MySQL数据库操作
数据库创建
使用 create database 创建数据库t1,并显示详细信息:
root@localhost test > create database t1;
数据库修改
root@localhost test > alter database t2 character set = utf8;
数据库删除
root@localhost test > drop database t1;
使用数据库
root@localhost test > use t1;
创建数据库表
root@localhost test > create table tb1(
查看数据库表
root@localhost test > show tables; # 查看数据库表列表
插入记录到数据库表
root@localhost test > insert tb1 values('Tom', 25, 7863.25);
记录查找
root@localhost test > select * from tb1;
MySQL数据类型
整形
数据类型 | 存储需求 |
---|---|
TINYINT | 8位 |
SMALLINT | 16位 |
MEDIUMINT | 24位 |
INT | 32位 |
BIGINT | 64位 |
浮点型
数据类型 | 存储需求 |
---|---|
FLOAT(M,D) | M是数字总位数,D是小数点后面的位数 |
DOUBLE(M,D) |
日期时间型
列类型 | 存储需求 | 范围 |
---|---|---|
YEAR | 8位 | 1901~2155 |
TIME | 24位 | -838:59:59~838:59:59 |
DATE | 24位 | 1000.01.01~9999.12.31 |
DATETIME | 64位 | 1000.01.01 00:00:00~9999.12.31 23:59:59 |
TIMESTAMP | 32位 | 1970.01.01 00:00:01~2037 年某时 |
字符类型
列类型 | 存储需求 |
---|---|
CHAR(M) | 固定长度,M个字节,0<= |
VARCHAR(M) | 可变长度,L+1个字节,L<=M且0<=M<=2^16 -1 |
TINYTEXT | L+1个字节,L<2^8 |
TEXT | L+1个字节,L<2^16 |
MEDIUMTEXT | L+1个字节,L<2^24 |
LONGTEXT | L+1个字节,L<2^32 |
ENUM(‘value1’,’value2’,…) | 1或2个字节,最多2^16 -1个值 |
SET(‘value1’,’value2’,…) | 1、2、3、4或8个字节,最多64个成员 |
MySQL约束
主键约束
NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
AUTO_INCREMENT 必须与 主键 组合使用,其会在新记录插入表中时生成一个唯一的数字。默认情况下,起始值为1,每次的增量为1。
root@localhost test > create table tb3(
非空约束
NOT NULL 指示某列不能存储 NULL 值。在默认的情况下,表的列接受 NULL 值。
-
NULL,字段值可以为空
-
NOT NULL,字段值禁止为空
root@localhost test > create table tb2(
唯一约束
UNIQUE 保证某列的每行必须有唯一的值。唯一约束的字段可以为NULL值,但是必须只有一个NULL值。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
root@localhost test > create table tb5(
默认约束
为没用明确指出值的字段赋予默认值。
root@localhost test > create table tb6(
使用C/C++语言来操作MySQL
我们可以使用命令行来操作MySQL数据库,譬如:
root@localhost test > show databases;
也可以通过MySQL对外公布的C接口来操作数据库,譬如:
// show_tables.cxx
连接MySQL库,来编译该段代码:
$ g++ -Wall show_tables.cxx -o showtables -lmysqlclient