目录
零、MySQL安装与配置
一、基本概念
二、基本语法
三、常用指令
四、四种SQL语句
 
 
 
零、MySQL安装与配置
http://www.cnblogs.com/hikarusun/archive/2012/04/26/2471039.html
http://jingyan.baidu.com/article/597035521d5de28fc00740e6.html
http://database.51cto.com/art/201304/387439.htm
http://yanln.iteye.com/blog/2193842
端口:3306
账户:root
WindowsServiceName:MySQL56
可视化工具:Navicat for MySQL【功能非常强大】
启动MySQL服务:右击我的电脑-管理-服务和应用程序-服务-MySQL57,启动即可;如果没有启动,可能出现错误:cann't connect to MySQL Server on localhost
官方文档:一般安装MySQL时会有官方文档【http://dev.mysql.com/doc/有下载】
 
 
 
一、基本概念
1、MySQL是关系型数据库,由一个或多个表格组成。表格:表头、行、列、键(具有唯一性)、值
2、MySQL语句执行有两种方法:
(1)控制台下执行单条语句。
(2)通过SQL脚本完成对数据库的操作,该脚本由一条或多条MySQL语句(SQL语句+扩展语句)组成,保存时脚本后缀名为.sql。
3、MySQL是基于客户端-服务器的数据库。服务端存放管理数据,直接与数据文件打交道;客户端与用户打交道,获取、操作数据都是通过连接服务端完成的。服务器软件为MySQL DBMS;客户端可以是MySQL提供的工具,脚本语言、web应用开发语言、程序设计语言等。
 
 
 
二、基本语法
1、标识符:命名一些对象,如数据库、表、列、变量等。Windows下标识符大小写不敏感,Linux下敏感。
2、关键字:如create、drop、select等。标识符不能与关键字重名。
3、函数:如字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数等。
4、数据类型【以下类型并不全面,随着版本更新也不能保证完全准确】
1)数字类型
A、整数:tinyint、smallint、mediumint、int、bigint,分别有1、2、3、4、8字节。可以指定位数,如int(4),注意,4指位数,不是字节数。
B、浮点数:float、double、real、decimal。如double(20,4),20指定最大位数,4指定小数点后精度。
2)日期和时间:date、time、datetime、timestamp、year【关于日期和时间,更多见日期时间类型详解】
3)字符串类型(文本和字符串后面的修饰表示的都是字符数,不是字节数)
A、字符串:char、varchar。注意char和varchar后面都可以跟0-255的修饰。对于char,这个值是实际大小,比这个长要截短,比这个短要用空格补足。对于varchar,这个值是大小的最大值,比这个值大要截短,比这个值小不会填充。varchar的好处:不知道字段确定长度时,可以节省空间;便于搜索比较。一个汉字占的字节数与编码有关:GBK占2字节,UTF-8占3字节。定长字符串的好处:MySQL处理定长字符串的快很多;不允许对变长列进行索引(存疑)。
B、文本:tinytext、text、mediumtext、longtext。字符范围:255、65535、2^24-1、2^32-1。
C、二进制(可存储图片等):tinyblob、blob、mediumblob、longblob。字节范围:255、65535、2^24-1、2^32-1。
5、MySQL语句中,所有空格被忽略,因此跨行无所谓。
 
 
三、常用指令
1、登陆与退出(登陆指令的前提是已将mysql所在的目录加入PATH或bin,或在mysql所在的目录中)
mysql -u kismet -p=》会提示输入密码
mysql -u kismet -password *****
mysql -u kismet -h hostname -p/password
mysql -u ... -h ... -p/password ... -D databasename
mysql -D …… -u kismet -p < test.sql(登录时执行脚本)
quit
http服务器:/../../httpd -k start/stop/restart
 
2、创建、查看与删除一个数据库
create database 数据库名 [其他选项];
show databases;【其中的informa_schema和mysql是自带的数据库】
drop database 数据库名;
 
3、选择所要操作的数据库
登录时-D;
use 数据库名;(可以不加分号)
 
4、创建、查看与删除表
(1)create table 表名称(列声明);如:
create table students ( id int unsigned not null auto_increment primary key,
.........,
tel char(11) null default "-");
(2)列声明:名称+类型(可能有unsigned)+(null/not null)+(auto_increment)+(primary key)+(default+……)
null/not null:是否可以为空(默认可以为空)
auto_increment:适用于整数列(插入为NULL,值为最大+1);只能有一个,而且必须被索引;使用auto_increment列,可以指定插入值,只要它尚未被使用过,后面的插入增量基于该指定的值;last_insert_id()函数可以获得最近插入的auto_increment值(个人猜测在触发器中很有用武之地)
primary key:该列为主键,索引列,值唯一,列唯一
default:指定默认值;只支持常量,不支持函数;对于null列,如果不指定则默认为null
(3)其他部分
if not exists:如果该表存在,则会报错;为避免报错,可以改为:create if not exists table students ……
engine:可以在最后(括号之后)加上engine=innodb/myisam……指定存储引擎
(4)show tables;describe 表名【等价于:show columns from 表名】
(5)drop table 表名;
 
5、向表中插入数据【血泪教训:insert语句一定要指定插入值与列的对应关系;否则数据库一旦扩展或调整顺序,程序就崩溃了!】
插入完整的行:如果某些列可以由MySQL自动生成而不需要手动添加,可以将它们置为null,MySQL会自己处理,这样的例子包括 自增的主键、timestamp类型等;这种方式最好不要使用,因为一旦表结构发生变化(如顺序变化、添加列),插入语句将失败。
插入行的一部分:指定列名,可以只插入部分数据(其他条件是该列允许null或提供了默认值,否则会报错),或者不按顺序插入
插入多行:单条insert插入多条数据比多个insert效率要高
插入检索出的数据:不要求列名匹配;按照顺序匹配
插入不重复的数据:测试发现,重复与否的判断标准是primary key、unique index,普通的key可以重复
补充:插入操作相对查询来说可能比较耗时(尤其是有很多索引需要更新时)(update和delete同理),有时为了保证检索的效率,可以降低插入的优先级。
insert [into] `user` VALUES(null,'asdfadsf',null,30)#插入完整的行
insert [into] `user`(name,age) values('hello',45)#插入行的一部分
insert `user`(name,age) values('hello',45),('world',400)#插入多行
insert `user`(name,age) select name,age from tmp#插入检索出的数据
insert ignore into ……
insert low_priority into#低优先级插入
 
6、查询表中数据:见四
 
7、更新表中数据
可以更新多列,用逗号隔开;可以根据表中旧值更新新值(旧值和新值不一定是同一列);新值可以使用子查询获得;使用ingore关键字,当更新出现错误时可以继续更新;新值可以为NULL
update user set name='zhou',age=11 where id=10;#可以有多列,用逗号隔开
update user set age=age+1 where id=1;#根据表中旧值更新新值
update user set age=id+1 where id=10;#旧值与新值不一定是同一列
update user set name=(select name from teacher where id=10) where id=10#新值可以使用子查询获得
update ignore user ……#使用ignore,当更新出现错误时可以继续更新
update user set name=null where ……#新值可以为null
 
8、删除表中的数据
delete from 表名称 where 删除条件;
delete from 表名称;//清空表数据,不能使用delete * fromo 表名称;
如果要删除整个表,尽量不要使用delete,速度较慢,因为它会逐行删除数据;使用truncate table完成相同工作,但速度更快(实际上删除整个表并重新创建一个表),如truncate table 'user'
【对于update和delete,没有办法撤销;因此在执行之前,一定使用select验证下where子句的条件是否争取,否则后果不堪设想】
 
9、修改表本身:创建表时应该足够谨慎,修改表尽量避免
(1)添加列
alter table 表名 add 列名 列数据类型(可以加其他属性) [after 插入位置];
(2)修改列
alter table 表名 change 列名 列新名称 列数据类型(可以加其他属性);
(3)删除列
alter table 表名 drop 列名称;
(4)重命名表
alter table 表名 rename 新表名;或
rename table 表名 to 新表名;
(5)其他:增加外键等
 
 
 
四、四种SQL语句
1、DDL:Data Definition Language
(1)包括:CREATE、ALTER、DROP、TRUNCATE、COMMENT、RENAME
(2)不需要commit,因此也无法回滚。
2、DML:Data Manipulation Language
包括:SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、LOCK TABLE
3、DCL:Data Control Language
包括:GRANT、REVOKE
4、TCL:Transaction Control Language
包括:SAVEPOINT、ROLLBACK、SET TRANSACTION
 
 

MySQL1-基础知识点的更多相关文章

  1. fastclick 源码注解及一些基础知识点

    在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...

  2. .NET基础知识点

    .NET基础知识点   l  .Net平台  .Net FrameWork框架   l  .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转   l  两种交 ...

  3. JavaScript 开发者经常忽略或误用的七个基础知识点(转)

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  4. JavaScript 开发者经常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  5. JavaScript开发者常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  6. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  7. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  8. c语言学习之基础知识点介绍(三):scanf函数

    本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例 ...

  9. c语言学习之基础知识点介绍(二):格式化控制符和变量的补充

    上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的 ...

  10. (转)JavaScript 开发者经常忽略或误用的七个基础知识点

    英文原文:7 JavaScript Basics Many Developers Aren't Using (Properly) JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和 ...

随机推荐

  1. .NET Framework 4.7 安装

    我们打开.NET Framework下载界面: https://www.microsoft.com/net/download/framework 这时你会发现,我们能下载的.NET Framework ...

  2. openssl命令行-证书认证

      命令1: openssl genrsa -out root.key 1024 产生一个root.key的私钥 命令2: openssl req -key root.key -new -out ro ...

  3. IE和其他浏览器用JS新窗口打开的问题

    Chrome中 window.open(pageURL,name,parameters) pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 例 ...

  4. ue4构建光照失败问题与解决

    不知从哪天开始,我的ue4.13就突然无法成功构建光照了, 症状为:虽然swarm连接到了100%,然而之后就卡住一动不动,一看看log是连接tcp什么agent什么失败的. 虽然把所有物体都设置成非 ...

  5. 对GPIO_Init(GPIOx,&GPIO_InitStructure)的理解

    今天学习stm32流水灯程序的时候,看到了"GPIO_Init(GPIOB, &GPIO_InitStructure)"这个函数,参数1"GPIOB"很 ...

  6. 使用Java语言开发微信公众平台(五)——获取access_token

    在前四期的文章中,我们分别学习了"环境搭建与开发接入"."文本消息的接收与响应"."被关注回复与关键词回复"."图文消息的发送与响 ...

  7. C语言学习第七章

    今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针. 指针:指针是一个变量,它存储另一个对象 ...

  8. 深入浅出学习HTTP协议

    之前学习javaWeb只是大致了解了一下,今天重点介绍下http请求,当是复习吧! 一.http基础概念 1.什么是http协议? HTTP是Hyper Text Transfer Protocol( ...

  9. [Git]07 如何在提交过程中忽略某些文件

     一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等.我们可以创建一个名为 .gitignor ...

  10. ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist

    Oracle 设置默认数据库 如果我们的服务器上或者电脑上安装了多个数据库,当我们使用sqlplus时如果为指定数据库时登录到的是哪一个数据库呢?今天遇到了一个老问题: ORA-01034: ORAC ...