目录
零、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. Druid Indexing 服务

    索引服务由三个主要组件:一个是peon 组件,可以运行一个任务,一个是Middle Managers组件,管理peons,和一个overlord 组件管理任务分发给Middle Managers. o ...

  2. lua 字符串

    lua 字符串 语法 单引号 双引号 "[[字符串]]" 示例程序 local name1 = 'liao1' local name2 = "liao2" lo ...

  3. mvc中DotNetOpenAuth实现了第三方应用访问自己的网站

    以yahoo为例吧,即从yahoo取得用户信息,存到自己的站点,实现了用户信息在一次录入多处共享的功能.以下是在点击了使用yahoo登录本站的链接后执行action:OpenId. ProviderU ...

  4. HYML / CSS部分

    1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个 ...

  5. 跨语言时区处理与Epoch

    国际化通用程序或标准协议通常都涉及到时区问题,比如最近项目用到的OIDC(OpenID Connect). OIDC基于OAuth2协议,其id_token中包含了exp来表达该Token的过期时间, ...

  6. tomcat的常用配置

    1.解決get请求的中文乱码问题 解决办法: 首先找到tomcat路径下的apache-tomcat-7.0.52\conf文件夹,打开server.xml文件,编辑如下内容: <Connect ...

  7. bzoj4827 [Hnoi2017]礼物

    Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在 ...

  8. Ruby读excel写入mysql

    安装mysql2 打开cmd: gem install mysql2 代码 require 'win32ole' require 'mysql2' class String def addslashe ...

  9. PHP填补数字前后的0

    PHP数字填补0 经常会遇到这样的问题: 自然数字是0,1,2,3...而我们需要的却是满足多少多少位数的数字,如:001,002. 在ID,编号,学号中我们会经常用到补全前面或者后面的空位(一般为前 ...

  10. c#常用方法和类

    1.  数据类型转换函数 Convert.ToXXX(); XXX.Parse(); XXX.TryParse(); 2. 日期相关的类与函数 获取系统当前日期(含时间):DateTime.Now 获 ...