Mysql数据库笔记
1、mysql服务启动不了,进程意外终止 1067
错误显示:can not connect to mysql server on local hosts(1061)
解决方法:原来是我傻逼把原来的MySQL数据库给删掉了
2、服务已经启动,但是输入密码时 进不去
错误显示:ERROR 1045 <28000>:Access denied for user'root'@'locahost'<using password:YES>
解决方法:http://blog.sina.com.cn/s/blog_759a5a7c01017dj0.html
3、
默认端口号:3306
把mysql的bin目录添加到环境变量中就可以在任意目录下都可以打开bin目录了。
之前看到的root@localhost这些是因为别人改了提示符:
mysql>prompt \u@ \h \d>
\u表示当前用户 \h表示服务器名称 \d表示当前数据库
MySQL语句规范:
数据库名称、表的名称、字段的名称全部小写;
SQL语句必须以分好结尾。
加中括号表示可以省略
mysql>SELECT VERSION();
显示当前时间;
mysql>SELECT NOW();
显示当前用户;
mysql>SELECT USER();
修改原始密码:
打开命令提示符界面, 执行命令: mysqladmin -u root -p password 新密码
执行后提示输入旧密码完成密码修改, 当旧密码为空时直接按回车键确认即可。
开始:
MySQL>CREATE DATABASE (IF NOT EXISTS) case;
MySQL>SH0W DATABASES;
//重命名数据库名称
//显示某个数据库;
MySQL>SHOW CREATE DATABASE case;
//更改数据库编码为utf8;
MySQL>ALTER DATABASE case CHATACTER SET=utf8;
//删除数据库:
MySQL>DROP DATABASE case;
修改和删除
ALTER TABLE 表名 RENAME TO 新名;
修改字段名
ALTER TABLE 表名 CHANGE 旧字段 新字段 新字段数据类型
修改字段数据类型
ALTER 表名 MODIFY 属性名 数据类型
增加字段
ALTER TABLE 表名 ADD 字段1 字段1的条件 [FIRST | AFTER 字段2];
删除字段
ALTER TABLE 表名 DROP 字段;
修改字段的排列位置:
ALTER TABLE 表名 MODIFY 字段1 字段1数据类型 FIRST|AFTER 字段2;
更改表的存储引擎:
ALTER TABLE 表名 ENGINE=引擎名
添加主键约束:
ALTER TABLE 表名 DROP FOREIGN KEY (外键别名)
修改数据表的名称:
ALTER TABLE table_name RENAME TO new_table_name
删除记录:
delete from users where id=1;
修改记录:
update 表名 set 字段=新值 where 条件;
update users set id=1 whers sex=1;
表字段的修改:
增加字段
ALTER table tb_name ADD column_name 属性 位置; //增加一个字段,默认为空
alter table user add COLUMN new2 VARCHAR(20) NOT NULL; //增加一个字段,默认不能为空
删除字段
alter table user DROP COLUMN new2; //删除一个字段
alter table user DROP column1,column2; //删除多列
alter table user MODIFY new1 VARCHAR(10); //修改一个字段的类型
alter table user CHANGE new1 new4 int; //修改一个字段的名称,此时一定要重新指定该字段的类型
第二章:
1、数据类型:
TINYINT -2^7->2^7-1
SMALLINT -2^15->2^15-1
MEDIUMINT -2^23->2^23-1
INT -2^31->2^31-1
BIGINT -2^63->2^63-1
浮点型:
FLOAT[(M,D)] m代表总位数,d代表小数点后位数
DOUBLE[(M,D)]
时间日期型:(了解)
YEAR 1个字节
TIME 3
DATE 3
DATETIME 8
TIMESTAMP 4
字符型:
CHAR(M) 0<=M<=255
VARCHAR(M)
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM('value1,'value2'...)
SET('value1','value2',,,)
2、数据表的操作
打开数据库:
USE test(数据库名称)
创建数据表:
CREATE TABLE (IF NOT EXISTS) table_name<数据表名字>(column_name<根据项目大小确定的列名>data_type<数据类型>,..)
>CREATE TABLE tb1(
>username VARCHAR(20),
>age TINYINT UNSIGNED,<unsigned意思是不要负数>
>salary FLOAT(8,2) UNSIGNED <float(8,2)的意思是总共有8位数,其中小数点后有2位)>
>);
查看数据表列表
SHOW TABLES FROM test;
查看数据表结构
SHOW COLUMNS FROM TB1;
插入记录INSERT
INSERT [INTO] tb1_name [(col_name,,,)] VALUES(val,,,)
INSERT TB1 (username ,salary) VALUES ('tom',26,919.3);
插入的也可以是算式比如:33-2 或者函数式:MD5('342')
也可以一次插入多条记录,记录间用,分开就行。
记录查找SELECT
SELECT * FROM TB1_NAME
3、空值与非空
创建表,设定某些量空与非空
>CREATE TABLE TB2(
>username VARCHAR(20) NOT NULL,
>age TINYINT UNSIGNED NULL,
>);
>INSERT TB2 VALUES(NULL,20);
<将报错说username不可为空>
4、自动编号(AUTO_INCREMENT)不能用char类型
默认情况下,起始值为1,每次的增量为1;
5、主键约束(PRIMARY KEY)
主键保证记录的唯一性
主键自动为not null
多个字段联合主键:
PRIMARY KEY(username,age);
>CREATE TABLE TB2(
>id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
AUTO_INCREMENT(自动递增)必须和PRIMARY KRY一起使用,而PRIMARY KEY则不一定要和AUTO_INCREMENT一起使用
>username VARCHAR(20) NOT NULL,
>);
>SHOW COLUMNS FROM TB3;
6、唯一约束(UNIQUE KEY)
唯一约束可以保证记录的唯一性
唯一约束的字段可以为NULL
每张数据表可以存在多个唯一约束
与主键的区别:一张数据表只能有一个主键,而UNIQUE KEY可以有多个可以NULL
>CREATE TABLE TB4(
>id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<自动编号字段>
>username VARCHAR(20) NOT NULL UNIQUE KEY,
>age TINYINT UNSIGNED
>);
插入记录:INSERT TB4(username,age) VALUES('TOM',23);
当再次写入同样的记录时,将提示错误,因为username用了unique约束。可想而知这个约束在数据表里可以有多个。
7、默认约束(DEFAULT)
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
>CREATE TABLE TB5(
>id SAMLLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
>username VARCHAR(20) NOT NULL UNIQUE KEY,
>sex ENUM('1','2','3') DEFAULT '3'
>);
验证:
INSERT TB5(username)VALUES('TOM');
将发现自动给sex赋值3了。
8、外键约束
表与表之间的链接
父表和子表必须使用相同的储存引擎(InnoDB),而禁止使用临时表:
外键列和参照列必须具有相识的数据类型。其中数字的长度或是否有符号位必须相同;而字符 的长度则可以不同
外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
CREATE TABLE provinces(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL
);
查看数据表的引擎:show create table provinces;
CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARU KEY AUTO_INCREMENT,
username VARCHAR(10) NOT NULL,
//添加省份的话可以不用添加字段,只要添加关系表省份的编号就行
pid SMALLINT UNSIGNED,
FOREIGN KEY(pid)REFERENCES provinces(id)
);
查看索引:SHOW INDEXES FROM provinces\G;
SHOW INDEXES FROM users\G;
外键约束的参数:
CASCADE:从父表删除或更新且自动删除或更新字表中匹配的行
SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL,如果使用该选项,必须保证 子表列没有指定NOT NULL
TESTRICT(约束、限制):拒绝对父表的删除或更新操作
NO ACTION:标准的SQL的关键字,在MySQL中RESTRICT相同。
为自动编号的字段赋值
可以书写成default 或者null
创建表:
CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL DEFAULT 123,
age TINYINT UNSIGNED NOT NULL,
sex BOOLEAN
);
插入记录:
INSERT users VALUES(NULL,'Jack',159357,20,1);
9、

Mysql数据库笔记的更多相关文章
- mysql数据库笔记0
mysql数据库笔记0 一次性添加多行数据 例如: INSERT INTO students (class_id, name, gender, score) VALUES (1, '大宝', 'M', ...
- MySQL数据库笔记总结
MySQL数据库总结 一.数据库简介 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的.它不仅仅指狭义上的数字,而是有多种表现形式:字母.文字.文本. ...
- MySQL数据库笔记六:数据定义语言及数据库的备份和修复
1. MySQL中的函数 <1>加密函数 password(str) 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码加密. select PASSWORD('tlxy666 ...
- MySQL数据库笔记二:数据类型及数据库操作
三.MySQL数据库数据类型 MySQL数据库中支持多种数据类型:数值型.字符型.日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值.与存储大小和数值的范围无关. ...
- MySQL数据库笔记一:简介及简单操作
一.初识MySQL数据库 1.数据库的概述 <1>数据库:Database 长期存储在计算机内的,有组织的,可共享的数据集合. 存储数据的仓库.(文件) <2>数据库管理系统: ...
- MySQL数据库笔记四:MySQL的约束
<1>概念 是一种限制,它是对表的行和列的数据做出约束,确保表中的数据的完整性和唯一性. <2>使用场景 创建表的时候,添加约束 <3>分类 1. default: ...
- MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)
五.数据查询语言(DQL) (重中之重) 完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order ...
- mysql数据库-笔记
基本概念篇 SQL语言的分类(DDL.DML.DCL.DQL) 对应的英文全程:data (definition.manipulation.control.query)language 参考资料: h ...
- (mysql)数据库笔记
一.数据库的特点: a.实现数据共享 b.采用特定的数据类型. c.具有较高的数据独立性 d.具有统一的数据控制功能. 二.mysql的优势: a.速度:运行速度快 b.价格:mysql对多数个人来 ...
随机推荐
- apache配置运行zendframework 2
其实ZF不用安装,只需引入就行,将ZF的library引入到项目的vendor\ZF2 就可以在ZF中开发了 在php版本5.4以上, 1 确保开启 extension=php_pdo.dllext ...
- Linux更改主机名--适用于Centos
1.显示主机名: [root@bogon:~]# hostnamezhh64 2.临时修改主机名: [root@bogon:~]# hostname zzofs[root@bogon:~]# host ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- HTML5 Canvas 高仿逼真 3D 布料图案效果
HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.下面给大家分享一个 HTML5 C ...
- 极富创意的3D文件夹切换效果
今天分享的是一个极富创意的文件夹切换效果.这个案例使用CSS 3动画实现了一个3D的平行六面体旋转效果.点击顶部的3个按钮可以旋转并切换.另外,每个六面体本身是一个文件夹,点击后可以展开查看里面的详情 ...
- 使用animate()的时候,有时候会出现移进移出的闪动问题
怎么解决这种问题呢?在animate()前面需要加上stop() 例如: $(".nav_list").hover(function(){ $(".div1") ...
- JavaScript学习笔记-正则表达式(RegExp对象)
正则表达式(RegExp对象) 1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...
- 总结CSS3新特性(Transform篇)
概述: CSS3新添加的Transform可以改变元素在可视化区域的坐标(这种改变不会引起文档的重排,只有重排),以及形状,还有些3D形变.结合 Animation(这里以后会有个链接的) 能实现酷炫 ...
- Shapely中的几何图形操作
Geometric Objects object.area Returns the area (float) of the object. object.bounds Returns a (minx, ...
- Troubleshooting FIM: (No Display Name) in FIM Portal
from: http://social.technet.microsoft.com/wiki/contents/articles/12682.troubleshooting-fim-no-displa ...