1.MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.数据库(Database,简称DB)的定义:“按照数据结构来组织、存储和管理数据的仓库”
3.命令行,连接mysql服务器:
su root
mysql -u root –ppassword
4.显示所有数据库:show databases;
选定默认数据库:use dbname;
显示默认数据库中所有表:show tables;
查看表的内容select * from 表名
退出mysql程序:\q
5.一个命令用分号结束,否则mysql认为语句没有输入完,箭头(->)代表SQL语句没有输入完
6.字符串用双引号或单引号都行
7.CHAR和VARCHAR类型的区别
CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:
CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。
VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。
8.数值列的完整性约束
AUTO_INCREMENT 作用;值每行加1,一个表中最多只能有一个这样的列,对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键。
举例:
create table t(id int auto_increment not null primary key);
UNSIGNED
无符号,此属性禁用负值,将数值的取值范围从零开始。NULL和NOT NULL
默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。
DEFAULT
可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。
9.1)建立数据库操作:
语法:create database 数据库名(前提是该数据库不存在)
例:建立一个student库。
mysql> create database student;
2)建立表操作:
语法:create table 表名(
列名1 列类型 [<列的完整性约束>],
列名2 列类型 [<列的完整性约束>],
... ... );
例:
建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增
create table school(
school_id int(10) not null auto_increment primary key,
school_name varchar(20)
);
3)显示表结构操作
语法:desc 表名;
4)删除表操作
语法:drop table 表名;
5)删除数据库操作
语法:drop database 数据库名;
6)更改表结构操作
alter table 表名 action;
10.主键与外键
主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。
主键必须是唯一的
主键应该是紧凑的,因此整数类型比较适合
外键:引用另外一个数据表的某条记录。
外键列类型尽可能与主键列类型保持一致
外键列应该加上NOT NULL
11.插入记录操作
INSERT [INTO] <表名> [列名] VALUES <值列表>;
举例:向people表中添加一条记录:
insert into people(name,age) values(“zhangsan”,20);
12.插入多行数据
INSERT INTO <表名>(列名) SELECT <列名> FROM <源表名>;
13.更改记录操作
UPDATE <表名> SET <列名 = 更新值> [WHERE <更新条件>];
where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。
14.删除记录操作
DELETE FROM <表名> [WHERE <删除条件>];
该删除操作不会删除该表。
15,。查询记录操作
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
from子句:指定查询数据的表
where子句:查询数据的过滤条件
group by子句:对匹配where子句的查询结果进行分组
having子句:对分组后的结果进行条件限制
order by子句:对查询结果结果进行排序,后面跟desc降序或asc升序(默认)。
limit子句:对查询的显示结果限制数目
procedure子句:查询存储过程返回的结果集数据
16.使用集函数
SQL提供的统计函数称为集函数.
主要的集函数:
记数函数: count(列名) 计算元素的个数
求和函数: sum(列名) 对某一列的值求和,但属性必须是整型
计算平均值:avg(列名)对某一列的值计算平均值
求最大值: max(列名) 找出某一列的最大值
求最小值: min(列名) 找出某一列的最小值
17.Mysql安装(基于命令行)
安装mysql服务端
sudo apt-get install mysql-server
安装图形开发界面
sudo apt-get install mysql-workbench
安装mysql开发包
sudo apt-get install libmysqlclient-dev
18.MySQL的API
#include<mysql/mysql.h>
MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row;
char *server = “localhost”; char *user = “root”; char *password = “”; /* 此处改成你的密码 */
char *database = “stu”;/*预先建好的库名*/
//初始化一个数据库句柄
conn = mysql_init(NULL);
//连接数据库
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); }
//设置字符集
mysql_set_character_set(conn,"utf8");
if (mysql_query(conn, “select * from student"))
{ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); }
//获得结果集
res = mysql_use_result(conn);
//依次从结果集中获得每一个行,并打印
while ((row = mysql_fetch_row(res)) != NULL)
{ printf(“%s \t%s\t%s\n”, row[0], row[1], row[2]);
}
//释放结果集
mysql_free_result(res);
//关闭数据库连接 mysql_close(conn);
编译时在命令后加 -L /user/lic/mysql -lmysqlclient