热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SQLite入门之四表的增删攺查

您现在的位置:首页教程编程开发mssql数据库SQLite入门之四表的增删攺查SQLite入门之四表的增删攺查感谢3lian8的投递时间:2014-03-13来源:三联教程4.1SQLite存储类型SQLite存储类型存储类型描述NULL值是一个NULL值。INTEGER值是一个

您现在的位置:首页>教程>编程开发>mssql数据库 > SQLite入门之四表的增删攺查 SQLite入门之四表的增删攺查 感谢 3lian8 的投递 时间:2014-03-13 来源:三联教程 4.1 SQLite 存储类型 SQLite 存储类型 存储类型描述 NULL值是一个 NULL 值。 INTEGER值是一个

您现在的位置:首页 > 教程 > 编程开发 > mssql数据库 > SQLite入门之四表的增删攺查

SQLite入门之四表的增删攺查

感谢 3lian8 的投递 时间:2014-03-13 来源:三联教程 

4.1 SQLite 存储类型

SQLite 存储类型

存储类型 描述

NULL 值是一个 NULL 值。

INTEGER 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。

REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。

TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。

BLOB 值是一个 blob 数据,,完全根据它的输入存储。

4.2 创建数据库和创建表

创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL

?

1

2

3

4

5

bixiaopeng@bixiaopeng db$ sqlite3 wireless.db

SQLite version 3.7.13 2012-07-17 17:46:21

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);

CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。您也可以选择指定带有 table_name 的 database_name。

查看表是否创建成功

?

1

2

sqlite> .tables

COMPANY

查看表的完整信息

?

1

2

sqlite> .schema COMPANY

CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);

4.3 插入数据 插入数据,方法一:插入对应的列的值

?

1

2

sqlite> INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

...> VALUES (1, 'Paul', 32, 'California', 20000.00 );

查询是否插入成功

?

1

2

sqlite> SELECT * FROM COMPANY;

1|Paul|32|California|20000.0

 插入数据,方法二:给所有列插入值

?

1

2

3

4

sqlite> INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );

sqlite> SELECT * FROM COMPANY;

1|Paul|32|California|20000.0

7|James|24|Houston|10000.0

用第二种方法多插入几个数据:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

sqlite> INSERT INTO COMPANY VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

sqlite> INSERT INTO COMPANY VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

sqlite> INSERT INTO COMPANY VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

sqlite> INSERT INTO COMPANY VALUES (5, 'David', 27, 'Texas', 85000.00 );

sqlite> INSERT INTO COMPANY VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

sqlite> SELECT * FROM COMPANY;

1|Paul|32|California|20000.0

7|James|24|Houston|10000.0

2|Allen|25|Texas|15000.0

3|Teddy|23|Norway|20000.0

4|Mark|25|Rich-Mond |65000.0

5|David|27|Texas|85000.0

6|Kim|22|South-Hall|45000.0

4.4 更新数据

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

//先插入一条数据

sqlite> INSERT INTO COMPANY VALUES (8, 'wirelessqa', 28, 'HZ', 20000.00 );

sqlite> SELECT * FROM COMPANY;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

8 wirelessqa 28 HZ 20000.0

//更新NAME为wirelessqa的地址为NanJing

sqlite> UPDATE COMPANY SET ADDRESS = 'NanJing' WHERE NAME = 'wirelessqa';

8 wirelessqa 28 NanJing 20000.0

//查看更新后的数据

sqlite> SELECT * FROM COMPANY WHERE NAME = 'wirelessqa';

ID NAME AGE ADDRESS SALARY

8 wirelessqa 28 NanJing 20000.0

4.5 删除数据

?

1

2

3

4

//删除ADDRESS为NanJing的这条数据

sqlite> DELETE FROM COMPANY WHERE ADDRESS = 'NanJing';

sqlite> SELECT * FROM COMPANY WHERE ADDRESS = 'NanJing';

sqlite>

4.6 数据查询 4.6.1. SQLite 算术运算符

运算符: + - * / %

?

1

2

3

4

5

6

7

8

9

10

sqlite> select 4 + 2;

6

sqlite> select 4 - 2;

2

sqlite> select 4 * 2;

8

sqlite> select 4 / 2;

2

sqlite> select 4 % 2;

0

4.6.2. SQLite 算术运算符

运算符 描述 实例

== 检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。

= 检查两个操作数的值是否相等,如果相等则条件为真 (a = b) 不为真。

!= 检查两个操作数的值是否相等,如果不相等则条件为真 (a != b) 为真。

<> 检查两个操作数的值是否相等,如果不相等则条件为真 (a <> b) 为真。

> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。

< 检查左操作数的值是否小于右操作数的值,如果是则条件为真 (a

>= 检查左操作数的值是否大于等于右操作数的值,如果是则条件为真 (a >= b) 不为真。

<= 检查左操作数的值是否小于等于右操作数的值,如果是则条件为真 (a <= b) 为真。

看一下表里现有的数据:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

sqlite> .headers on

sqlite> .mode tabs

sqlite> SELECT * FROM COMPANY;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

sqlite> SELECT * FROM COMPANY WHERE AGE = 32;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

sqlite> SELECT * FROM COMPANY WHERE AGE == 32 ;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

sqlite> SELECT * FROM COMPANY WHERE AGE <32;

ID NAME AGE ADDRESS SALARY

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

sqlite> SELECT * FROM COMPANY WHERE AGE != 32;

ID NAME AGE ADDRESS SALARY

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

sqlite> SELECT * FROM COMPANY WHERE AGE <= 32;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

sqlite> SELECT * FROM COMPANY WHERE AGE >= 32;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

sqlite> SELECT * FROM COMPANY WHERE AGE > 32;

4.6.3. SQLite 逻辑运算符

运算符 描述

AND AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。

BETWEEN BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。

EXISTS EXISTS 运算符用于在满足一定条件的指定表中搜索行的存在。

IN IN 运算符用于把某个值与一系列指定列表的值进行比较。

NOT IN IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。

LIKE LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。

GLOB GLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。

NOT NOT 运算符是所用的逻辑运算符的对立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定运算符。

OR OR 运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。

IS NULL NULL 运算符用于把某个值与 NULL 值进行比较。

IS IS 运算符与 = 相似。

IS NOT IS NOT 运算符与 != 相似。

UNIQUE UNIQUE 运算符搜索指定表中的每一行,确保唯一性(无重复)。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

//AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。

sqlite> SELECT * FROM COMPANY WHERE AGE <25 AND SALARY > 15000.0;

ID NAME AGE ADDRESS SALARY

3 Teddy 23 Norway 20000.0

6 Kim 22 South-Hall 45000.0

//OR 运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。

sqlite> SELECT * FROM COMPANY WHERE AGE <25 OR SALARY > 15000.0;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

//BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 32;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

2 Allen 25 Texas 15000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

//EXISTS 运算符用于在满足一定条件的指定表中搜索行的存在。

sqlite> SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

AGE

32

24

25

23

25

27

22

//AGE 不为 NULL 的所有记录

sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

//LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';

ID NAME AGE ADDRESS SALARY

6 Kim 22 South-Hall 45000.0

//GLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';

ID NAME AGE ADDRESS SALARY

6 Kim 22 South-Hall 45000.0

//IN 运算符用于把某个值与一系列指定列表的值进行比较。

sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );

ID NAME AGE ADDRESS SALARY

2 Allen 25 Texas 15000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

//IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

3 Teddy 23 Norway 20000.0

6 Kim 22 South-Hall 45000.0

//

sqlite> SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

sqlite> SELECT * FROM COMPANY WHERE AGE <(SELECT AGE FROM COMPANY WHERE SALARY > 65000);

ID NAME AGE ADDRESS SALARY

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

6 Kim 22 South-Hall 45000.0

4.6.4 排序、分组、去重、时间

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

//通过内置函数查看一共有多少条数据

sqlite> SELECT COUNT(*) AS "RECORDS" FROM COMPANY;

RECORDS

7

//显示前4条

sqlite> SELECT * FROM COMPANY LIMIT 4;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

//按SALARY降序排序

sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;

ID NAME AGE ADDRESS SALARY

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

1 Paul 32 California 20000.0

3 Teddy 23 Norway 20000.0

6 Kim 22 South-Hall 45000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

//按SALARY升序排序

sqlite> SELECT * FROM COMPANY ORDER BY SALARY DESC;

ID NAME AGE ADDRESS SALARY

5 David 27 Texas 85000.0

4 Mark 25 Rich-Mond 65000.0

6 Kim 22 South-Hall 45000.0

1 Paul 32 California 20000.0

3 Teddy 23 Norway 20000.0

2 Allen 25 Texas 15000.0

7 James 24 Houston 10000.0

//按NAME和SALARY升序排序

sqlite> SELECT * FROM COMPANY ORDER BY AGE,SALARY DESC;

ID NAME AGE ADDRESS SALARY

6 Kim 22 South-Hall 45000.0

3 Teddy 23 Norway 20000.0

7 James 24 Houston 10000.0

4 Mark 25 Rich-Mond 65000.0

2 Allen 25 Texas 15000.0

5 David 27 Texas 85000.0

1 Paul 32 California 20000.0

// GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。

// 查询某个人的工资总数

sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;

NAME SUM(SALARY)

Allen 15000.0

David 85000.0

James 10000.0

Kim 45000.0

Mark 65000.0

Paul 20000.0

Teddy 20000.0

// GROUP BY 和 ORDER BY一起用

sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;

NAME SUM(SALARY)

Teddy 20000.0

Paul 20000.0

Mark 65000.0

Kim 45000.0

James 10000.0

David 85000.0

Allen 15000.0

//HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。

//WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。

//在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前

//查询所有数据

qlite> SELECT * FROM COMPANY;

ID NAME AGE ADDRESS SALARY

1 Paul 32 California 20000.0

7 James 24 Houston 10000.0

2 Allen 25 Texas 15000.0

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

6 Kim 22 South-Hall 45000.0

//查询AGE,并去重

sqlite> SELECT DISTINCT AGE FROM COMPANY;

AGE

32

24

25

23

27

22

日期 & 时间

//把header关掉了

sqlite> . header off

sqlite> SELECT date('now');

2014-02-27

sqlite> SELECT datetime(1092941466, 'unixepoch');

2004-08-19 18:51:06

sqlite> SELECT TIME('NOW');

07:47:25?

4.6.5. 常用函数

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

//表行数

sqlite> SELECT count(*) FROM COMPANY;

7

//最大值

sqlite> SELECT max(salary) FROM COMPANY;

85000.0

//最小值

sqlite> SELECT min(salary) FROM COMPANY;

10000.0

//平均值

sqlite> SELECT avg(salary) FROM COMPANY;

37142.8571428572

sqlite> SELECT sum(salary) FROM COMPANY;

260000.0

//转大写

sqlite> SELECT upper(name) FROM COMPANY;

PAUL

JAMES

ALLEN

TEDDY

MARK

DAVID

KIM

//转小写

sqlite> SELECT lower(name) FROM COMPANY;

paul

james

allen

teddy

mark

david

kim

//长度

sqlite> SELECT name, length(name) FROM COMPANY;

Paul 4

James 5

Allen 5

Teddy 5

Mark 4

David 5

Kim 3

sqlite>

4.7 删除表

?

1

2

sqlite> DROP TABLE COMPANY;

sqlite> .tables

4.8 删除数据库

?

1

直接rm 删除掉db文件就可以了

相关文章

标签:

[返回三联首页] [返回mssql数据库栏目] / [加入三联文集]

推荐阅读
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
aixiangsui2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有