linux下使用mysql数据库的总结

来源:互联网 发布:经营业绩怎么写数据 编辑:程序博客网 时间:2024/05/21 10:11

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

0 0
原创粉丝点击