数据库学习之基础篇

① 开放数据库互连(Open Database Connectivity,ODBC

② 结构化查询语言(Structured Query Language)

③ 进入mysql:Mysql -u cz -p cz;

④ 显示系统的database: show databases;

⑤ 创建database:create database 名字;

⑥ 选择database:use 名字;

⑦ 删除数据库:drop database name;或者表

⑧ 查看表:show tables;(必须在选择数据库(use name;)之后,执行)

⑨ 查看view table等结构:desc name;

⑩ 创建table :create table name(列值 类型,列值 类型,...)

11 Mysql不区分大小写,但对于字符串匹配时,有lower(),upper()函数,来转变大小写,**********问题**************

12 数据操作:

a) 查:select * from tbName;

  1. 别名机制:
    1. 列别名:as 或者 空格,自动将后边的列名作为前边的列的列名作为输出的列名。
    2. 表别名:Select e.ename,e.job from emp e;
  2. 如:select salary+bo

b) 增:

  1. insert into tbName (列明1,列明2...) values (参数1,参数2...);
  2. insert into tbName  values (参数1,参数2...);

c) 删:

  1. delete from tbName;全部删除
  2. delete from tbName where 条件;条件删除

d) 改:update tbName set 列明=值 where

  1. update tbName set 列明 = 值;//全部修改
  2. update tbName set 列明 = 值;//条件修改

13 条件查询:

a) 比较运算符:>   <   =   <>不等于                                    备注:mysql支持!=   ,但其他数据库并不一定支持

b) 逻辑运算符:and    or 备注:mysql支持 &&  ||,但不代表其他数据库支持

c) 算数运算符:

  1. *  +  -  /
  2. 如:select ename,job,salary+ifnull(bonus,0) sal ,salary*12 yearSal from emp;

d) 区间判断:where 列明 between 列值a and 列值d;

e) 集合查询:in exists 效率问题

f) Link通配符:

  1. 百分号 (%) 百分号表示零个,一个或多个字符。
  2. 百分号 (%) 百分号表示零个,一个或多个字符。

g) NULL特性:

  1. 任何数据与NULL相加结果为NULL
  2. 通用函数:ifnull(列名,value)  如果列名为空,则值为value.oracle和sqlserver 是NVL ,作用一样。
  3. 被组函数忽略。
  4. 在mysql中默认最小,所以也比负数小,在oracle 中最大。
  5. 比较时,使用 is null  ,is not null ,进行比较。

h) SQL TOP子句,用于从表中获取一个TOP N号或X%的记录。注:所有的数据库不支持TOP子句。例如,MySQL支持LIMIT子句来获取记录数量限制,Oracle使用ROWNUM来获取记录数量限制。

i) 排序:

  1. 格式:SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC];
  2. 例如:select * from emp where deptno=10 order by empno asc;

14 子查询:

a) 子查询作为主查询的前提条件:如:select * from emp where salary > (select salary from emp where ename =’cz’);

b) having 和where 区别:  having 是筛选组  而where是筛选记录他们有各自的区别

  1. 当分组筛选的时候 用having
  2. 其它情况用where
  3. 用having就一定要和group by连用,
  4. 用group by不一有having (它只是一个筛选条件用的)

c) 当子查询返回多行时:

  1. All  any 修饰主查询与子查询的匹配关系。
  2. 如:select ename,job,salary from emp where salary > all (select salary from emp where ename=’lacus’);

15 关联子查询:子查询时,MySQL需要为内层查询语句的查询结果建立一个临时表。然后外层查询语句再临时表中查询记录。查询完毕后,MySQL需要撤销这些临时表。因此,子查询的速度会受到一定的影响。如果查询的数据量比较大,这种影响就会随之增大。在MySQL中可以使用连接查询来替代子查询。如:

16 链接子查询:在MySQL中可以使用连接查询来替代子查询。连接查询不需要建立临时表,其速度比子查询要快。

17 组函数(忽略null,):

a) 特性:

  1. 忽略null
  2. 如果语句中带有普通查询,必须做分组处理。Group By().分组处理的列一般情况,分组之后的条件查询是having;
  3. 如: select job,count(empno) count_emp from emp group by deptno having count_emp>1;

b) count() 统计个数,不计重。

c) Sum()

d) Avg()

e) Min()

f) Max()

18 格式化输出:

a) Format(数据,小数位数) 如:select ename,job,format((salary+ifnull(bonus,0))/1.2) sal from emp;

b) select date_format(now(),'%y-%m-%d');

19 通用函数(不忽略null):

a) Now():获得系统当前详细时间

b) curdate():

c) current_timestamp();//详细时间

d) Localtime();//详细时间

e) Format(数据,小数位数)

数据库学习之管理篇

远程数据库链接链接:想远程链接数据库服务器,首先要保证服务器的防火墙是否允许远程链接,然后在数据库运行状态下管理远程链接。配置如下:

1、确定服务器上的防火墙没有阻止 3306 端口。MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。

2、增加允许远程连接 MySQL 用户并授权。

1)首先以 root 帐户登陆 MySQL

在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。      2)创建远程登陆用户并授权

格式: grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";

例如:grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';

解释:授权给ted用户使用123456密码通过IP为123.123.123.123 对数据库discuz所有表进行操作。

① all PRIVILEGES:表示所有权限,当然可以选择select updata 等

② On discus.*:表示对discus数据库所有表的权限。如果是所有数据库所有表,则为*.*

③ To ted:表示对ted用户授权

④ @”ip”:表示允许通过该IP访问,当然“%”表示任何ip

⑤ identified by '123456':表示用户使用密码123456登录。

3、flush privileges; 使修改生效。

mysql学习笔记之基础篇的更多相关文章

  1. MySQL学习笔记2————基础篇记录

    这里以实验楼的数据库来记录,如有侵犯实验楼权益,请联系本人,必定删除 在此感谢实验楼提供的免费教程 MySQL 基础课程_SQL - 实验楼 一. 表project employee 任务:想要知道名 ...

  2. Django学习笔记(基础篇)

    Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html

  3. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  4. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  5. Git学习笔记:基础篇

    git可以说是所有开发者出开发语言之外的最基本的基本功了,熟悉git可以方便的进行代码版本控制,以及与其他开发者进行合作开发.本文内容是我以往学习git时做的笔记,主要是关于git最基本的操作,但 只 ...

  6. vue学习笔记之基础篇

    本文主要记录学习vue的一些基础内容及常用知识点的记录. 1.搭建脚手架 vue init webpack vue-demo 初始化一个使用webpack打包的vue项目 npm install 安装 ...

  7. Python 学习笔记(基础篇)

    背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...

  8. Python学习笔记之基础篇(二)python入门

    一.pycharm 的下载与安装: 使用教程:https://www.cnblogs.com/jin-xin/articles/9811379.html 破解的方法:http://xianchang. ...

  9. datatables 学习笔记1 基础篇

    本文共3部分:基本使用|遇到的问题|属性表 1.DataTables的默认配置 $(document).ready(function() { $('#example').dataTable(); } ...

随机推荐

  1. MVC4 Forms 验证,部署到Hyper-v上.FormsAuthentication.SetAuthCookie无效的问题

    这是IE10的一个bug或者说是asp.net4的一个Bug,在IE10里更改了http头,这样导致asp.net4认为客户端没有启用cookie,会导致验证失败.简单的解决方法是,在网站根目录,新增 ...

  2. Java程序员必备的 15框开发工具

    15款Java程序员必备的开发工具 如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同 ...

  3. 能够提高开发效率的Eclipse实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

  4. javascript 编程技巧

    1.巧用判断: 在js中,NaN,undefined,Null,0,"" 在转换为bool的时候,是false,所以,可以这样写. if(!obj) {} 表示一个对象如果为fal ...

  5. entOS查看系统信息-CentOS查看命令

    一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...

  6. IT技术方案最佳实践方案的收集

    一.图片鉴别服务 1. 阿里云,腾讯云等公开的服务. 2. 图谱科技提供的API 二. 网络直播服务器 1. SRS2 开源服务器 (https://github.com/ossrs/srs/wiki ...

  7. spf13-vim – The Ultimate Distribution for Vim Editor

    spf13-vim is a cross platform and highly customizable assortment of vim plugins and various resource ...

  8. 【CSS3】---text-overflow 与 word-wrap

    text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出. 语法: 但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定 ...

  9. shell获取本地ip的三种方法

    第一种方法:ifconfig|grep inet |awk '{print $2}'|sed '2d'|awk -F : '{print $2}'第二种方法:ifconfig|grep inet|se ...

  10. 安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法

    安装项目下,右键视图->自定义操作,出现安装.提交.回滚.卸载四个文件夹,右键安装,添加自定义操作,选择安装的服务为输出文件 右键安装输出文件->在condition->Not (I ...