未加星标

MySQL初识

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二03 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

记不住过去,看不透未来――失败。

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 $ sudo service mysql start $ sudo service mysql stop $ sudo service mysql restart MySQL基本操作 登录操作 $ mysql -u root -p -P 3306 -h 127.0.0.1 # -u --user # -p --passwd # -P --port, 3306 is the default port for mysql # -h --host 设置提示符 mysql> prompt \u@\h \d> PROMPT set to '\u@\h \d> ' [email protected] (none) > use test [email protected] test > # \u 设置显示用户名 # \h 设置显示主机 # \d 设置显示当前数据库 # \D 设置显示完整日期 查询警告 mysql > show warnings; 查询命令帮助

使用 help 命令能够找到MySQL语句的具体使用帮助指南,我们以 create database 举例:

mysql> help create; mysql> help create database; mysql> help alter; mysql> help alter database; MySQL数据库操作 数据库创建

使用 create database 创建数据库t1,并显示详细信息:

[email protected] test > create database t1; [email protected] test > show databases; [email protected] test > show create database t1; [email protected] test > create database if not exists t2 character set gbk; 数据库修改 [email protected] test > alter database t2 character set = utf8; 数据库删除 [email protected] test > drop database t1; 使用数据库 [email protected] test > use t1; [email protected] t1 > select database(); # 显示当前数据库 创建数据库表 [email protected] test > create table tb1( -> username varchar(20), -> age tinyint unsigned, -> salary float(8,2) unsigned -> ); 查看数据库表 [email protected] test > show tables; # 查看数据库表列表 [email protected] test > show tables from test; # 查看数据库test表列表 [email protected] test > show columns from tb1; # 查看数据库表结构 插入记录到数据库表 [email protected] test > insert tb1 values('Tom', 25, 7863.25); [email protected] test > insert tb1 values('Tom', 25); # error [email protected] test > insert tb1(username,salary) values('John', 4500.69); # ok 记录查找 [email protected] 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<=<M<=255 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。

[email protected] test > create table tb3( -> id smallint unsigned AUTO_INCREMENT PRIMARY KEY, -> username varchar(30) NOT NULL -> ); [email protected] test > show columns from tb3; [email protected] test > insert tb3(username) values('Tom'); [email protected] test > insert tb3(username) values('John'); [email protected] test > select * from tb3; 非空约束

NOT NULL 指示某列不能存储 NULL 值。在默认的情况下,表的列接受 NULL 值。

NULL,字段值可以为空 NOT NULL,字段值禁止为空 [email protected] test > create table tb2( -> username varchar(20) NOT NULL, -> age tinyint unsigned NULL -> ); [email protected] test > insert tb2 values('tom',NULL); # ok [email protected] test > insert tb2 values(NULL,25); # error 唯一约束

UNIQUE 保证某列的每行必须有唯一的值。唯一约束的字段可以为NULL值,但是必须只有一个NULL值。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

[email protected] test > create table tb5( -> id smallint unsigned AUTO_INCREMENT PRIMARY KEY, -> username varchar(20) NOT NULL UNIQUE KEY, -> age tinyint unsigned -> ); [email protected] test > show columns from tb5; [email protected] test > insert tb5(username, age) values('Tom',22); [email protected] test > insert tb5(username, age) values('Tom',22); # error 默认约束

为没用明确指出值的字段赋予默认值。

[email protected] test > create table tb6( -> id smallint unsigned AUTO_INCREMENT PRIMARY KEY, -> username varchar(20) NOT NULL UNIQUE KEY, -> sex ENUM('1','2','3') DEFAULT '3' -> ); [email protected] test > insert tb6(username) values('Tom'); [email protected] test > select * from tb6; 使用C/C++语言来操作MySQL

我们可以使用命令行来操作MySQL数据库,譬如:

[email protected] test > show databases; [email protected] test > use mysql; [email protected] test > show tables;

也可以通过MySQL对外公布的C接口来操作数据库,譬如:

// show_tables.cxx #include<mysql/mysql.h> #include<stdio.h> #include<stdlib.h> intmain(){ MYSQL * conn; MYSQL_RES * res; MYSQL_ROW row; char server[] = "localhost"; char user[] = "root"; char passwd[] = "lovemime"; char database[] = "mysql"; conn = mysql_init(NULL); if(!mysql_real_connect(conn, server, user, passwd, database, 0, NULL, 0)) { fprintf(stderr, "%s/n", mysql_error(conn)); exit(1); } if(mysql_query(conn, "show tables")){ fprintf(stderr, "%s/n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); printf("MySQL Tables in mysql database:\n"); while((row =mysql_fetch_row(res)) != NULL){ printf("%s \n", row[0]); } mysql_free_result(res); mysql_close(conn); printf("finish! \n"); return 0; }

连接MySQL库,来编译该段代码:

$ g++ -Wall show_tables.cxx -o showtables -lmysqlclient 参考链接 菜鸟教程:SQL 教程 菜鸟教程:MySQL 教程 慕课视频:与MySQL的零距离接触

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

主题: SQLMySQL数据C++UbuntuAU数据库UTAUTTI
分页:12
转载请注明
本文标题:MySQL初识
本站链接:http://www.codesec.net/view/520193.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(24)