`
kongzimengsheng1
  • 浏览: 66542 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 权威指南笔记

阅读更多
///==============================

多年前,就买了一个本mysql权威指南!
一页没看过

想从mysql上打开一个深入的缺口从它上来比较不错

我觉的首先了解mysql 基本的常用语法;
再深入了解一些mysql,优化SQL,设计与实现测试的工作!
mysql 也有function prodecuted[复杂的功能先不看,测试一些数据用的上..]

阿弥陀佛,开始:




我使用的myqsl权限是.
mysql> select version();
+---------------------+
| version()           |
+---------------------+
| 5.0.37-community-nt |
+---------------------+
1 row in set (0.00 sec)


还行不老不新,先在window环境下把它搞定,再上linux,

我个人习惯root 访问,不合适;;


给sampdb库,设一个管理员帐户tom 密码tom
grant all on sampdb.* to 'tom'@'localhost' identified by 'tom';
权限问题,没搞清;;
现在只有root可以,做上面的操作;

grant all on jpetstone.* to 'tom'@'localhost' identified by 'tom';


C:\>mysql -u tom -p
Enter password: ***
mysql>

1:当前时间
2:当前用户
3:当前数据库系统版本
mysql> select now(),user(),version();
+---------------------+---------------+---------------------+
| now()               | user()        | version()           |
+---------------------+---------------+---------------------+
| 2009-11-01 15:34:48 | tom@localhost | 5.0.37-community-nt |
+---------------------+---------------+---------------------+
1 row in set (0.00 sec)

在查询的参数后面加一个\G;
1:查询显示为竖形式,
   这个功能可是非常有用,当我们要查询优化时这一点可是用的上;

mysql> select now(),user(),version() \G
*************************** 1. row ***************************
    now(): 2009-11-01 15:36:00
   user(): tom@localhost
version(): 5.0.37-community-nt
1 row in set (0.00 sec)


创建数据库;
create database sampdb;

创建脚本;
#总统
create table president(
last_name  varchar(15) not null,
first_name varchar(15) not null,
suffix     varchar(5) null,
city       varchar(20) not null,
state      varchar(2) not null,
birth      date not null,
death      date null
);
#会员
create table member(
member_id int unsigned not null auto_increment,
primary key(member_id),
last_name  varchar(15) not null,
first_name varchar(15) not null,
suffix     varchar(5) null,
expiration date null default '0000-00-00',
email      varchar(100) null,
street     varchar(50) null,
city       varchar(20) null,
state      varchar(2) null,
zip        varchar(10) null,
phone      varchar(20) null,
interests  varchar(255) null
);

查询所有的表;
mysql> show tables;
+------------------+
| Tables_in_sampdb |
+------------------+
| member           |
| president        |
+------------------+
2 rows in set (0.00 sec)
查询所有的库;
mysql> show databases;

//======================================

create table student(
name varchar(20) not null,
sex  enum('F','M') not null,
student_id int unsigned not null auto_increment,
primary key (student_id)
);

create table event(
date date not null,
type enum('T','Q')not null,
event_id int unsigned not null auto_increment,
primary key(event_id)
);

create table score(
student_id int unsigned not null,
event_id   int unsigned not null,
primary key(event_id,student_id),
score int not null
);

create table absence(
student_id int unsigned not null,
date date not null,
primary key(student_id,date)
);


//==================================
查询当然是要了解一个特点;
学oracle 我知道有一个 dual 表;;
在mysql可不用;
mysql> select user();  这一点还不错;

限制查询的行个数;
mysql> select * from user
    -> order by name limit 5;
+----+---------+------+
| id | name    | mid  |
+----+---------+------+
|  1 | manager | NULL |
|  2 | tom0    |    1 |
|  3 | tom1    |    1 |
|  4 | tom2    |    1 |
|  5 | tom3    |    1 |
+----+---------+------+
5 rows in set (0.00 sec)

mysql> select * from user
    -> order by name limit 3,5;
+----+------+------+
| id | name | mid  |
+----+------+------+
|  4 | tom2 |    1 |
|  5 | tom3 |    1 |
|  6 | tom4 |    1 |
|  7 | tom5 |    1 |
|  8 | tom6 |    1 |
+----+------+------+
5 rows in set (0.00 sec)

随机选出一条记录,不错;

select * from user
order by  rand() limit 1;


//========================
日期常用处理方式;
select * from uu where rdate = '2009-11-04';
select * from uu where month(rdate) = 11;
select * from uu where year(rdate) = 2009;
select * from uu where dayofmonth(rdate) = 04;


//当前日期与时间
//当前日期
//当前时间
select now();
select curdate();
select curtime();

+------------+
| curdate()  |
+------------+
| 2009-11-04 |
+------------+
+-----------+
| curtime() |
+-----------+
| 15:03:01  |
+-----------+


select date_format(now(),'%Y-%m-%d %H:%i:%S') ;
+----------------------------------------+
| date_format(now(),'%Y-%m-%d %H:%i:%S') |
+----------------------------------------+
| 2009-11-04 15:11:05                    |
+----------------------------------------+
mysql> select date_format(now(),'%Y年%m月%d日 %H:%i:%S') 当前时间;
+-------------------------+
| 当前时间                |
+-------------------------+
| 2009年11月04日 15:13:05 |
+-------------------------+
1 row in set (0.00 sec)

//===========================================
建国60周年
to_days()天数;;

mysql> select round((to_days(now()) - to_days('1949-10-1'))/365);
+----------------------------------------------------+
| round((to_days(now()) - to_days('1949-10-1'))/365) |
+----------------------------------------------------+
|                                                 60 |
+----------------------------------------------------+
1 row in set (0.00 sec)


//============================
设置和使用sql变量;

我感觉mysql变量,就是一个查询的结果;



select @id := id from uu
where name = 'tom';

mysql> select * from uu
    -> where id = @id;
+----+------+------------+
| id | name | rdate      |
+----+------+------------+
|  1 | tom  | 2009-11-04 |
+----+------+------------+
1 row in set (0.00 sec)

//=======================================

mysql> select * from student;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | tom   |   10 |
|  2 | jerry |   20 |
|  3 | long  |   20 |
+----+-------+------+

mysql> select * from score;
+----+---------+------+
| id | name    | rs   |
+----+---------+------+
|  1 | gaoshu  |    0 |
|  2 | english |    1 |
+----+---------+------+
2 rows in set (0.00 sec)

mysql> select * from rel;
+----+------+------+
| id | sid  | scid |
+----+------+------+
|  1 |    1 |    1 |
|  2 |    1 |    2 |
+----+------+------+
2 rows in set (0.00 sec)


1:
查询tom所选科目;
mysql> select s.id,s.name,sc.name
    -> from student s,score sc,rel r
    -> where s.id = r.sid and sc.id = r.scid;
+----+------+---------+
| id | name | name    |
+----+------+---------+
|  1 | tom  | gaoshu  |
|  1 | tom  | english |
+----+------+---------+
2 rows in set (0.00 sec)

2:
查询没有选课的人员名称;
mysql> select s.id,s.name,count(r.scid)
    -> from student s left join rel r
    -> on s.id = r.sid
    -> group by s.id,s.name
    -> ;
+----+-------+---------------+
| id | name  | count(r.scid) |
+----+-------+---------------+
|  1 | tom   |             2 |
|  2 | jerry |             0 |
|  3 | long  |             0 |
+----+-------+---------------+
3 rows in set (0.04 sec)

select s.id,s.name,count(r.scid)
from student s left join rel r
on s.id = r.sid
group by s.id,s.name
having count(r.scid) = 0;

+----+-------+---------------+
| id | name  | count(r.scid) |
+----+-------+---------------+
|  2 | jerry |             0 |
|  3 | long  |             0 |
+----+-------+---------------+
2 rows in set (0.03 sec)



///==============================

今天看书,有一个小知识点:
1:auto_increment
mysql> create table mytb1(
    -> seq int auto_increment not null,
    -> primary key(seq)
    -> )type=myisam auto_increment = 3000;
Query OK, 0 rows affected, 1 warning (0.12 sec)

mysql> insert into mytb1 values(null);
Query OK, 1 row affected (0.00 sec)

mysql> insert into mytb1 values(null);
Query OK, 1 row affected (0.00 sec)

mysql> insert into mytb1 values(null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from mytb1;
+------+
| seq  |
+------+
| 3000 |
| 3001 |
| 3002 |
+------+
3 rows in set (0.00 sec)

create table counter(
name varchar(20),
value int(20),
primary key(value));




2:regex

我们在搜索字符串时,常用like 
功能是比较弱的,今天发现mysql居然支持正则表达式;
mysql> select * from user where name like 't__0';
+----+------+------+
| id | name | mid  |
+----+------+------+
|  2 | tom0 |    1 |
+----+------+------+
1 row in set (0.00 sec)

select * from user where name regexp '^[a-z0-9]{4}$';
+----+------+------+
| id | name | mid  |
+----+------+------+
|  2 | tom0 |    1 |
|  3 | tom1 |    1 |
|  4 | tom2 |    1 |

//=================================
查看字符集:

mysql> show  create database test;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show  create table user;
+-------+-----------------------------------------------------------------------------
--------+
| Table | Create Table
        |
+-------+-----------------------------------------------------------------------------
--------+
| user  | CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `mid` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `FK36EBCBA429B0BC` (`mid`),
  CONSTRAINT `FK36EBCBA429B0BC` FOREIGN KEY (`mid`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-------+-----------------------------------------------------------------------------
mysql> show character set;

分享到:
评论

相关推荐

    2023年美赛特等奖论文-F-2305794-解密.pdf

    大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,2023年美赛特等奖O奖论文

    亚太经社会:2024年亚太贸易便利化报告.pdf

    亚太经社会:2024年亚太贸易便利化报告.pdf

    消费者价格指数下的年通货膨胀率(1960-2021年).xls

    消费者价格指数(CPI):按消费者价格指数衡量的通货膨胀反映出普通消费者在指定时间间隔(如年度)内购买固定或变动的一篮子货物和服务的成本的年百分比变化。通常采用拉斯佩尔公式进行计算。

    node-v8.10.0-linux-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    网页制作基础学习--HTML+CSS常用代码.txt

    网页制作基础学习--HTML+CSS常用代码

    IEC TS 60364-8-3-2020 低压电气装置.第8-3部分:功能方面.生产用户电气装置的操作.pdf

    IEC TS 60364-8-3-2020 低压电气装置.第8-3部分:功能方面.生产用户电气装置的操作.pdf

    智能制造数字化供应链全栈解决方案.pptx

    智能制造数字化供应链全栈解决方案.pptx

    yolov5训练自己的数据集.docx

    yolov5训练自己的数据集

    Windows 10系统上安装和配置Tomcat的步骤

    附件是Windows 10系统上安装和配置Tomcat的步骤,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

    2018美赛O奖论文C题合集.pdf

    大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,历年美赛特等奖O奖论文

    超级实用简洁的反色软件,支持部分区域反色!!

    超级实用简洁的反色软件,支持部分区域反色!! 界面简洁,易于使用! 源码可以联系

    2024年中国NAD+抗衰补剂行业研究报告.docx

    2024年中国NAD+抗衰补剂行业研究报告

    高德地图API+Python解决租房问题内含源码和设计文档.md

    高德地图API+Python解决租房问题内含源码和设计文档.md

    QYResearch:2023年前10大壁纸刀企业占据全球39%的市场份额.docx

    QYResearch:2023年前10大壁纸刀企业占据全球39%的市场份额.docx

    广东工业大学-数据库简答题考试试题回忆版以及答案解析.doc

    此试题是考试后回忆版本,你会发现是惊喜。恭喜你考个好成绩。

    node-v9.11.0-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    MVIMG_20240506_214323.jpg

    MVIMG_20240506_214323.jpg

    2023年美赛特等奖论文-B-2318300-解密.pdf

    大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,2023年美赛特等奖O奖论文

    数据库课程设计的概要介绍与分析

    数据库是计算机科学中的一个核心领域,它用于存储、管理和检索数据。随着信息技术的发展,数据库技术已经渗透到我们日常生活的方方面面,从简单的网站用户信息管理到复杂的企业级数据仓库系统,无一不彰显其重要性。以下是一个关于数据库的综合资源描述,旨在为初学者和专业人士提供一个全面的视角。 ### 1. 数据库基础 数据库的基础知识包括了解数据模型、数据库管理系统(DBMS)以及SQL语言等。数据模型主要有关系型模型(如MySQL、Oracle)、非关系型模型(NoSQL,如MongoDB、Cassandra)等。关系型数据库遵循ACID特性(原子性、一致性、隔离性、持久性),适用于需要高度一致性的场景;而非关系型数据库则以灵活的schema设计和高可扩展性见长,适用于大数据处理和实时Web应用。 ### 2. 学习资源 - **在线课程**:Coursera、edX、Udacity等平台提供了多门数据库相关的课程,涵盖从入门到高级的各种主题,比如Stanford大学的《数据库系统概念》课程。 - **书籍**:《数据库系统概论》(Silberschatz, Korth, Sudarsha

    《统计与数据分析基础》03数据处理.pptx

    《统计与数据分析基础》03数据处理

Global site tag (gtag.js) - Google Analytics