MySQL的数据库名称,表名称是区分大小写,MySQL 的SQL keywords不区分大小写;

if when you attempt to log in, you get an error message such as ERROR 2002 (HY000):
can't connect to local Mysql server through socket
'/tmp/mysql.sock'。(2),it means that the MySQL server daomon(Unix) or service(windows) is not running.
Consult the administrator.

if you decide you do not want to execute a query that you are in the process of entering,cancel it by tying \c;
//如果写着写着发现SQL语句写错了,可以按\c退出当前SQL编辑

MySQL 提示符
Prompt Meaning
mysql-> Ready for new query
-> Waiting for next line of multiple-line query
'> Waiting for next line,waiting for completion of a string that began with a single quote(')
"> Waiting for next line,waiting for completion of a string that begin with a double quote(")
`> waiting for next line,waiting for completion of an identifier that began a backtick(·)
/> Waiting for next line,waiting for completion of a comment that began with /

Multiple-line statements commonly occur by accident

The '> and "> prompts occur during string collection(another way of saying that MySQL is waiting for completion of a string)。
In MySQL,you can write strings surrounded by either ' or " characters(for example, 'hello' or "goodbye"),and mysql lets you enter

mysql 介绍

mysql --help

GRANT ALL ON managerie.* TO ‘your_mysql_name’@'your_client_host';

SELECT DATABASE();//查看当前正在使用的数据库

如何填充数据表?

①、填充数据从文件

LOAD DATA LOCAL INFILE '文件地址' INTO TABLE pet;

例如: LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

你能创建一个文本文件pet.txt,一个记录一行,
每个值由tab分割,一行值的顺序要和创建表的字段顺序一致。
如果不想给一个字段值,你能使用null值,
但是在文本文件中,使用\N代替null。

如果你创建的文本文件是在windows系统上使用编辑器,编辑器默认使用\r\n作为行结束符,
你需要使用下面的语句:

LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';

在苹果机器上,例如os X,你需要使用如下的语句来导入数据,

LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r';

how to retrieving information?

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;

MySQL逻辑操作符

and 和 or,and 优先级高于or的优先级。

null值的比较

看一个字段是否是null值,使用IS NULL,和IS NOT NULL 操作符
不能使用算术比较操作符例如 =,<,或者 <>比较null值。

在MySQL中,0或者null代表false,其他的代表true。

对于MySQL中的group by null值,连个null值是相等的。

在MySQL中, 0和空字符串不是null。

MySQL中的模式匹配??????

_匹配任意一个字符。
%匹配任意数量的字符串,

在MySQL中,默认,SQL匹配是不区分大小写的。

在SQL模式匹配中,不能使用=(等于)或者<>(不等于),使用LIKE或者NOT LIKE 比较操作符。

①、查询以b开头的 'b&'
②、查询以fy结尾的。'%fy'
③、查询包含w。'%w%'
④、查询确切地五个字符,使用五个_模式字符。 '_____'

MySQL中,一些可扩展的正则表达式特点:

MySQL中,正则表达式,
[NOT] REGEXP 正则表达式字符串。
①、.匹配任意一个字符。
②、[...]匹配任何字符序列之内的任意一个字符。例如:[abc] 匹配任何一个a,b,c
罗列一个范围的字符。使用-
③、匹配0个或者多个前面的字符,例如:x匹配任意数量的x字符,[0-9]匹配任意数量的数字,.匹配任意数量东西。

④、为了匹配整个值,必须^开头,以$结尾。

为了强制使用REGEXP 严格区分大小写,使用 BINARY 关键字把普通字符串转化为二进制字符串。

统计多少行??

多表查询?????

多表查询注意的地方:
①、需要两个表中的字段时,使用join。
②、join两个表的on,两个表关联的条件。
inner join 需要on.字段,两个表中的值都相等,才匹配。
③、如果两个表中都有的字段,必须指定表前缀。

获取更短关于数据库和表。

show databases;//查询所有的数据库
select database();//查看当前正在使用的数据库,如果没有选择任何数据库,这个结果是null。

show tables;//查看所有表

describe 表;//查看表结构

Field Type Null Key Default Extra
字段名称 字段类型 字段是否可以包含null值 字段是否使用索引 字段默认值 关于字段的指定信息,例如如果字段是自动增长,则会显示

desc 是 describe 的简写。

show create table 表名称;

show index from 表名称;//查看一个表的索引。

普通查询的例子

一个字段的最大值???

select max(字段) as 字段别名 from 表名称;

查询一个字段的最大值的,一行数据

CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
(3,'C',1.69),(3,'D',1.25),(4,'D',19.95);

①、子查询
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop);
②、左连接
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
③、order by 排序 limit
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1;

注意:使用order by排序,如果最大的值,有多个,只会显示一条数据。

3、每个分组最大的值

SELECT article, MAX(price) AS price
FROM shop
GROUP BY article;

5.使用用户自定义的变量

你可以采用用户变量来记住结果,而不是把结果存储在客户端的临时变量中。

例子:为了发现样品中的最高和最低的价格
SELECT * FROM shop WHERE price=@min_price OR price=@max_price;

SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;

注意: 也可以存储数据库对象的name例如一个table或者一个字段在用户变量,
然后在SQL中使用用户变量。

6、使用外键?

在mysql数据库中,Innodb数据表支持外键约束。

一个外键约束不仅仅支持联合两个表。对于Innodb以外的表,
定于一个字段使用peferences 表名称(字段),没有实际意义,仅仅作为一个注释,
现在定义的字段关联另一表的那个字段,

show create table shirt\G;

在除了innodb引擎以外的存储引擎,使用peferences 作为注释

7、搜索两个索引

如果一个索引字段使用or是已经优化的,因为它被当做and处理。

如果两个索引字段使用or需要优化这个SQL,可以使用联合查询。

8、统计每天的访问量

一个例子:
如何使用bit group 函数计算一个web页面每个月有少天的访问。

CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,
day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
(2000,2,23),(2000,2,23);

例子:为了统计每年,每月每天,用户访问的web页面数量。

为了确定每个月有多少天访问。

SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
GROUP BY year,month;

9.使用自动增长???????

auto_increment 属性

如果一个字段被定义为not null,也可以对这个字段使用null,自动自动增长的序列。

更新存在的auto_increment 字段,在innodb表,不重新设置auto_increment序列,除了myisam和ndb表。

例如:
如果是innodb存储引擎的表

注意:
如果插入多行,last_insert_id()和mysql_insert_id()实际上返回自动增长第一个插入的值。

自动增长从1开始,create_table和alter table,
在创建表和修改表时,
alter table 表名称 auto_increment = 100;

mysq数据库基本操作的更多相关文章

  1. ecmall数据库基本操作

    ecmall数据库基本操作,为了认真研究ecmall二次开发,我们必须熟悉ecamll的数据库结构,ecmall数据库结构研究熟悉之后,才能去认真分析ecamll的程序结构.从而实现ecmall二次开 ...

  2. Oracle 数据库基本操作——实用手册、表操作、事务操作、序列

    目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...

  3. MySQL系列:数据库基本操作(1)

    1. 登录数据库 mysql -h localhost -u root -p 2. 数据库基本操作 2.1 查看数据库 mysql> SHOW DATABASES; +------------- ...

  4. MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)

    1. 数据库基本操作 1.1  查看数据库 查看数据库列表: mysql> show databases; +--------------------+ | Database | +------ ...

  5. Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML

    一.Oracle数据库介绍 1.基本介绍 Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/ ...

  6. (三)mysql数据库基本操作

    (1)SQL语句:结构化查询语句 DDL语句 数据定义语言:数据库丶表丶视图丶索引丶存储过程丶函数丶create drop alter DML语句 数据库操作语言:插入数据insert,删除数据del ...

  7. laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)

    laravel基础课程---13.数据库基本操作2(lavarel数据库操作和tp对比) 一.总结 一句话总结: 非常非常接近:也是分为两大类,原生SQL 和 数据库链式操作 学习方法:使用时 多看手 ...

  8. laravel基础课程---10、数据库基本操作(如何使用数据库)

    laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...

  9. laravel5.2数据库基本操作

    laravel5.2数据库基本操作 百牛信息技术bainiu.ltd整理发布于博客园 use Illuminate\Database\Eloquent\Model; use Illuminate\Da ...

随机推荐

  1. 最新以及历史各版本 .NET Framework 的下载

    唔,如题,详见地址:https://www.microsoft.com/net/download/windows

  2. eclipse开发android入门学习

    1.device窗体            查看android执行情况的窗体和DDMS内容一致 2.android.bat             在adb路径下执行adb操作,实现android系统 ...

  3. java this 子类调父类,父类再调用子类已覆盖的方法及属性(又一次理解)

    之前一直以为 this关键字 是指调用者对象,但是这次才真正理解,this代表当前对象,但是指向调用者对象,其实就是多态的用法,如下所示:B 继承了 A,在B 中调用A类的方法,在A 中用this 访 ...

  4. github desktop的使用

    1.建仓库 2.添加文件 3.提交文件到本地仓库 4.撤销提交到本地仓库 或者直接Ctrl+Z 5.提交到远端仓库 6.添加一个分支 7.分支合并 1.本地仓库合并 将新分支添加的文件合并到maste ...

  5. Java知多少(64)线程死锁

    需要避免的与多任务处理有关的特殊错误类型是死锁(deadlock).死锁发生在当两个线程对一对同步对象有循环依赖关系时.例如,假定一个线程进入了对象X的管程而另一个线程进入了对象Y的管程.如果X的线程 ...

  6. Android应用图标微技巧,8.0系统中应用图标的适配

    现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的 ...

  7. Oracle调整内存超出限制出现ORA-27100: shared memory realm already exists问题解决办法

    今天测试服务器遇到问题 ORA-04030:out of process memory when trying to allocate string bytes 一看就猜到是内存不足了,把Oracle ...

  8. Mac mysql 修改密码

    如果你知道密码: mysqladmin -u root -p password 新密码 MYSQL数据库密码忘记: 1. 在系统偏好 中,中止MYSQL服务.: 2. cd/usr/local/mys ...

  9. [Tensorflow] Object Detection API - build your training environment

    一.前期准备 Prepare protoc Download Protocol Buffers Create folder: protoc and unzip it. unsw@unsw-UX303U ...

  10. [Bayes] Understanding Bayes: Updating priors via the likelihood

    From: https://alexanderetz.com/2015/07/25/understanding-bayes-updating-priors-via-the-likelihood/ Re ...