2018年5月1日更新: 多谢楼下小伙伴的提醒,MyCLI确实更强大。 MyCLI 简介 MyCLI 是一个易于使用的命令行客户端,可用于受欢迎的数据库管理系统 MySQL、MariaDB 和 Percona,支持自动补全和语法高亮。它是使用 prompt_toolkit 库写的,需要 Python 2.7、3.3、3.4、3.5 和 3.6 的支持。MyCLI 还支持通过 SSL 安全连接到 MySQL 服务器。 如何在 Linux 上为 MySQL 和 MariaDB 安装 MyCLI 在 Debian/Ubuntu 发行版上,你可以很容易的像下面这样使用 apt 命令 来安装 MyCLI 包: $ sudo apt-get update $ sudo apt-get install mycli 同样,在 Fedora 22+ 上也有 MyCLI 的可用包,你可以像下面这样使用 dnf 命令 来安装它: $ sudo dnf install mycli 对于其他 Lin 继续阅读 >>


李猛 18/04/25 13:21:41
问题引入 我们知道在SQL中,可以用check来来约束字段的范围。 下面这些SQL语句在MySQL下运行(系统环境为deepin 15.5 64位): mysql> CREATE TABLE `Student` ( -> `Sno` char(8) NOT NULL, -> `Sname` varchar(10) NOT NULL, -> `Sex` char(2)NOT NULL DEFAULT '男' CHECK (Sex IN ('男','女')) , -> `Age` tinyint(4) NOT NULL DEFAULT '20' CHECK (Age between 15 and 30), -> `Phonenumber` char(12) DEFAULT NULL, -> `Sdept` varchar(20) NOT NULL, -> PRIMARY 继续阅读 >>


李猛 18/04/12 23:12:35
mysql 忘记密码重置 1. 停止 MySQL 服务 $ cd /usr/local/mysql/bin/ $ mysql.server stop 2.进入安全模式 $ cd /usr/local/mysql/bin/ $ sudo ./mysqld_safe --skip-grant-tables 3.新开一个终端,进入 MySQL 输入mysql命令直接进入 $ cd /usr/local/mysql/bin/ $ mysql > use mysql > flush privileges; > set password for 'root'@'localhost'='***' 修改完成。 4.重启 cd /usr/local/mysql/bin/ mysql.server start mysql 安装 MYSQL-python 正常情况 sudo pip install MYSQL-python 出错情况 继续阅读 >>


卢晓丹 17/11/21 22:24:54
什么是主键、外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键 成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键。 同理:成绩表中的课程号是课程表的外键。 定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 继续阅读 >>


董恒毅 17/11/18 20:24:39
什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。 假设我们创建了一个名为people的表: CREATE TABLE people (peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL); 然后,我们完全随机把1000个不同name值插入到people表。下图显示了people表所在数据文件的一小部分(在数据文件中name列没有任何明确的次序): 如果我们创建了name列的索引,MySQL将在索引中排序name列: 对于索引中的每一项,MySQL在内部为它保存一个数据文件中实际记录 继续阅读 >>


董恒毅 17/11/16 16:44:37
MySQL两个结构相同的表合并 1.把两张表的数据全部导入到临时表中 create table 临时表 select * from 表1 union select * from 表2; 2.创建结果表,并创建主键 create table 结果表(字段1 类型 primary key,字段2 类型,字段3 类型…); 3.把临时表中重复数据过滤并写入结果表 insert into 结果表(字段1,字段2,字段3…) select distinct 字段1,字段2,字段3… from 临时表; 4.删除临时表 drop table 临时表; 关于mysql数据库备份 1.导出整个数据库。 mysqldump -u用户名 -p密码 数据库名 >导出的文件名 a.密码可以在第二行以不可见的形式输入,这样最安全。 b.导出的文件需要自己建立,最好以.sql格式结尾。 2.导出一个表。 mysqldump -u用户名 -p密码 数据库名 表名>导 继续阅读 >>


殷健翔 17/10/06 16:53:20
上次总结到了创建表 表的使用 首先我想看一下表的结构 desc 表名称 或者 show columns from 表名称 表的结构包括属性名,数据类型,是否为空值,是否设定默认值等信息 表的信息查找 select 字段名1,字段名2,字段名3….. from 表名称; 查看所有表的信息:select * from 表名称; 如查看表中第n到m行:select * from 表名称 order by 字段名 limit n-1,m; 表的信息管理 向表中增加插入数据 insert into 表名称 (字段名1,字段名2,字段名3……) values(字段名1的值,字段名2的值,字段名3的值……); 删除表中的数据 delete from 表名称 where 表达式; 其中表名称定位到哪个表,而表达式则定位到要删除的具体位置,表达式的形式是与字段名和其中数据有关的等式; 更新表中的数据 update 表名称 set 字段名=“新值” where 表达式; 继续阅读 >>


殷健翔 17/10/06 16:28:51
不会用Linux的程序猿不是好程序猿,不会用数据库的程序猿也不是一个好的程序猿,所以要成为一个好的程序猿,就需要学会在Linux下操作数据库^_^ Ubuntu下安装MySQL(请原谅我用的时Ubuntu吧^_^): sudo apt-get install mysql-server mysql-client 查看MySQL的版本 mysql -V ps:小写的v会GG的 启动数据库 sudo service mysql start ps:需要使用root权限才能够操作,如果是关闭或者重启,则把start换成stop,restart. 进入MySQL mysql -uroot -p 密码输入安装时设定的密码 然后进入界面之后,简单的一个MySQL命令: show databases; //显示所有的数据库,记得不要忘记那个分号 系统会自带几个数据,例如performance_schema ,information_schema,mysql。这几个自带的数据库最好不要删,以免从删库到跑 继续阅读 >>


殷健翔 17/09/18 21:08:44
第一步:啥叫句柄,就是一个数字,就和你去饭店吃饭要排队,前台小姐给你分配了一个编号一样,然后她可以通过编号找到你。而在操作系统或者某种其他编程系统中,句柄就是这样的一个编号,用来对各种奇奇怪怪的东西编号,系统对你来说是一个黑箱,你只能通过这个编号向系统要东西 第二步:C语言操作mysql数据库常用函数 所用到的头文件: mysql/mysql.h 功能: 获得或初始化一个MYSQL句柄 函数原型: MYSQL *mysql_init(MYSQL *mysql) 函数返回值: 一个被始化的MYSQL*句柄 备注: 在内存不足的情况下,返回NULL 函数功能: 连接一个MySQL服务器(在连接之前,必须先进行过初始化) 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql,const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsi 继续阅读 >>


刘生玺 17/09/09 14:31:18
第一部分c语言操作数据库 1、连接 MYSQL *mysql mysql=mysql_init(NULL);//初始化一下 mysql_real_connect(mysql,HOST,USER,PASSWD,TESTDB,0,NULL,0) ①HOST是主机名 ②user是ID ③passwd是密码 ④TESTDB是数据库的名称 2、信息错误处理 mysql_error(mysql) 3、对数据库进行操作(具体字符串在第二部分) mysql_real_query(mysql,query,strlen(query)) query是字符串 int result=mysql_affected_rows(mysql)//获取受到影响的行 如果返回值为0,结果就是没有受到影响,数据库中没有想获取的数据 4、储存数据结果和释放空间 MYSQL_RES res=mysql_store_result(mysql) mysql_free_result(res)//必须执行才可以进行后续的操作,不然会出错 5、获取行和列 mysql_f 继续阅读 >>


陈文浩 17/09/03 22:10:58