Navicat的安装和卸载注意点:
1.如果之前安装过Navicat premium.app,或者安装失败,就需要彻底的卸载~
1》将应用程序中此图片删除
2》前往- ~/Lib,tab键显示资源库 - Application Support -premiumSoft…这个文件夹也删除 -重启计算机,如果不这样做,则安装一直失败
2.安装
1》点开dmg后,里面还有个dmg,继续点击,安装完成后显示应用列表的窗口不要关!(关闭的话破解会不成功,就需要重新卸载)
2》在安装目录中有个navicat keygen的文件,右键显示简介,要选择 以32位模式打开,然后弹框右侧的桑格按钮分别点击并选择已经安装的navicat pre..软件,提示succesful即可
3.使用Navicatpremium,选择创建一个SQLite数据库,并创建table,创建属性,注意创建主键
主键:1》唯一标示一条记录 2》通常是一个整数 3》通常是自动增长的 4》程序员通常不用关心主键的数值
在设置table的属性的时候,在想要成为主键的属性后面key下点击生成钥匙即可,并在下面autoincre。。。勾选,实现自增长
4.对于SQLite的使用,我们需要做的
1》能看懂
2》开发的时候,可以从navicat先创建好表格,然后复制粘贴
方法:在navicat中创建好表格后,点击more info,点击DDL,则出现SQL语句
3》需要自己增加 IF NOT EXISTS
5.SQLite简单语法
1》单行注释:两个横杠--多行注释同C语言,
2》SQLite中的类型只有五种:INTEGER,TEXT(字符串类型,用单引号即可' '),REAL(小数),BLOB(二进制,一般不用,用于图片等), NULL
但是其实这些数据类型就是给程序员看的,内部是不区分的,所以如果没有按照数据类型赋值的话也是可以的。。自己把握好
3》SQL语句最后也要写上分好;,虽然不写也可以,但是写上更专业
3》创建表
CREAT TABLE IF NOT EXISTS '表名'(
'字段1' 类型,
'字段2' 类型,
…
)
4》插入
INSERT INTO表名(字段名1,字段名2,…)VALUES(值1,值2,…);
5》更新数据
UPDATE表名SET字段1 = '值1',字段2 = '值2',… WHERE条件语句;
更新数据一定要加上判断条件,数据库的修改是不可逆的,一定要慎重
6》删除指令
DELETE FROM表名WHERE条件语句;
删除数据的指令也一定要加上判断条件
7》删除表
DROP TABLE表名
8》查询语句
查询所有记录,但是这种写法一般仅供调试使用
SELECT * FROM表名;
日常开发建议写,指定要查询的字段
SELECT字段1,字段2,… FROM 表名;
查询记录的总数
SELECTcount(*) FROM表名;
按条件查询数量
SELECT count(*) FROM表名 WHERE条件语句;(如age < 20)
按条件查询详细信息
SELECT字段1,字段2,… FROM 表名 WHERE条件语句;
查询某字段的最值
SELECT max(字段名) FROM表名;
SELECT min(字段名) FROM表名;
查询,优先级排序(排序方式:DESC降序,ASC升序,默认是升序)
SELECT字段1,字段2,… FROM 表名 ORDER BY字段a排序方式,字段b排序方式,…;
常用 SQL
创建表
/*
创建数据表
CREATE TABLE '表名' (
'字段名' 类型(INTEGER, REAL, TEXT, BLOB)
NOT NULL 不允许为空
PRIMARY KEY 主键
AUTOINCREMENT 自增长,
'字段名2' 类型,
...
)
注意:在开发中,如果是从 Navicat 粘贴的 SQL,需要自己添加一个指令
IF NOT EXISTS 加在表名前,如果数据表已经存在,就什么也不做
*/
CREATE TABLE IF NOT EXISTS "T_Person" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"age" INTEGER,
"heigth" REAL
)
/* 简单约束 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE,
age INTEGER
);
/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER,
score REAL
);
/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER,
name TEXT,
age INTEGER,
score REAL,
PRIMARY KEY(id)
);
插入
INSERT INTO t_student
(age, score, name)
VALUES
('28', 100, 'zhangsan');
INSERT INTO t_student
(name, age)
VALUES
('lisi', '28');
INSERT INTO t_student
(score)
VALUES
(100);
修改
UPDATE t_student
SET name = 'MM'
WHERE age = 10;
UPDATE t_student
SET name = 'WW'
WHERE age is 7;
UPDATE t_student
SET name = 'XXOO'
WHERE age < 20;
UPDATE t_student
SET name = 'NNMM'
WHERE age < 50 and score > 10;
/*更新记录的name*/
UPDATE t_student SET name = 'zhangsan';
删除
DELETE FROM t_student;
DELETE FROM t_student WHERE age < 50;
查询
/* 分页 */
SELECT * FROM t_student
ORDER BY id ASC LIMIT 30, 10;
/* 排序 */
SELECT * FROM t_student
WHERE score > 50
ORDER BY age DESC;
SELECT * FROM t_student
WHERE score < 50
ORDER BY age ASC , score DESC;
/* 计量 */
SELECT COUNT(*)
FROM t_student
WHERE age > 50;
/* 别名 */
SELECT name as myName, age as myAge, score as myScore
FROM t_student;
SELECT name myName, age myAge, score myScore
FROM t_student;
SELECT s.name myName, s.age myAge, s.score myScore
FROM t_student s
WHERE s.age > 50;
/* 查询 */
SELECT name, age, score FROM t_student;
SELECT * FROM t_student;
删除表
/*删除表*/
DROP TABLE IF EXISTS t_student;